home *** CD-ROM | disk | FTP | other *** search
/ Ultra Utilities / Ultra Utilities (NMV)(1993).iso / dfue / comx42 / comx.txt < prev    next >
Text File  |  1991-09-14  |  137KB  |  2,831 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.                                          COMX
  24.  
  25.                                      Version 4.2
  26.  
  27.  
  28.                        Copyright (C) 1990-1991 Samuel A. Sholl
  29.  
  30.                                   6410 Romford Road
  31.                                   Madison, WI 53711
  32.                                      608-277-1661
  33.                                LICENSE AND REGISTRATION
  34.  
  35.                All versions of  COMX, from Version 4.21 on,  are NOT Public
  36.           Domain software nor are they  Free software. Currently, COMX is a
  37.           SHAREWARE program and requires  the user to register the  program
  38.           if he or she  intends to use it except for the purpose of limited
  39.           evaluation  described  below.  Registration  grants  the  user  a
  40.           license  to use  COMX  on  a single  computer  at  any one  time.
  41.           Non-registered users are granted a limited license to use COMX on
  42.           a trial  basis for the  purpose of evaluation and  determining if
  43.           COMX  is suitable for their  needs. Use of  COMX, except for this
  44.           limited purpose, requires the user to register the product.
  45.                All  users  of the  SHAREWARE  version of  COMX  are granted
  46.           limited license to  copy the product  only for  the trial use  by
  47.           others, subject to  the above limitations, provided  that COMX is
  48.           copied in its full  and unmodified form.  That is, the copy  must
  49.           include  all files  necessary  to permit  full  operation of  the
  50.           program, this  license  agreement,  registration  form  and  full
  51.           documentation. No  fee, charge,  license, warranty,  registration
  52.           obligation or other  compensation of any kind may  be accepted by
  53.           the donor or recipient in exchange for a copy of COMX.
  54.                Operators of Electronic Bulletin  Board Systems (BBS Sysops)
  55.           may permit the  SHAREWARE version of COMX to be downloaded by any
  56.           user, and any user may be permitted to upload a copy of COMX to a
  57.           BBS, with the  Sysop's permission, provided the  above conditions
  58.           are met.
  59.                Use  of  non-registered copies  of  COMX  by  any person  in
  60.           connection    with   a    business,   corporation,    educational
  61.           establishment  or government agency is forbidden. Such users must
  62.           register the product and/or purchase a site license agreement.
  63.                Registration of  COMX licenses you  to use the product  on a
  64.           regular  basis  and  entitles  you  to  receive  notification  of
  65.           bug-fixes,  enhancements, extensions,  upgrades etc.  and product
  66.           technical support relating to the use and application of COMX. 
  67.                Registration  covers  the   use  of  the  product,   by  the
  68.           registered user only, and provides you with the latest version of
  69.           COMX on disk  and a complete, more comprehensive  printed copy of
  70.           the user manual.
  71.                As a  registered user, you  will be notified of  future COMX
  72.           upgrades and  revisions and  offered the  opportunity to  acquire
  73.           them at a preferred rate and  also, for a limited time, you  will
  74.           be provided with minor upgrades, bug-fixes etc. free of charge. 
  75.                Shareware  is  copyrighted  by  its  author  and  cannot  be
  76.           distributed without  the author's permission.  The author retains
  77.           all rights (unlike Public Domain software) to a shareware program
  78.           and can make changes to it, or withdraw it  from public use as he
  79.           or she wishes. The distribution of shareware is encouraged by the
  80.           author  so that others may evaluate  it and determine if it meets
  81.           their needs,  use of which beyond a  reasonable evaluation period
  82.           requires the user to register his or her copy of the program.
  83.  
  84.                September 14, 1991
  85.                Samuel A. Sholl
  86.                6410 Romford Rd.
  87.                Madison, WI  53711           CONTENTS                                                     Page
  88.  
  89.           1. OVERVIEW AND HISTORY OF DEVELOPMENT  . . . . . . . . . . .   1
  90.  
  91.           2. INFORMATION ON THE NOTATION IN THIS DOCUMENT AND ON COMX
  92.                MENU AND KEYBOARD USAGE  . . . . . . . . . . . . . . . .   2
  93.  
  94.           3. INSTALLING COMX  . . . . . . . . . . . . . . . . . . . . .   4
  95.                3.1 COMX Files on The Installation Disk  . . . . . . . .   4
  96.                3.2 Hardware and MSDOS Requirements  . . . . . . . . . .   4
  97.                3.3 Copying Files to Your Computer . . . . . . . . . . .   5
  98.                3.4 Starting COMX and Finishing The Installation . . . .   5
  99.  
  100.           4. EXITING COMX ([M:Alt-X]) . . . . . . . . . . . . . . . . .   7
  101.  
  102.           5. HELP ([M:F10]) . . . . . . . . . . . . . . . . . . . . . .   7
  103.  
  104.           6. STARTUP OPTIONS  . . . . . . . . . . . . . . . . . . . . .   7
  105.  
  106.           7. TERMINAL EMULATION ([M:Alt-T]) . . . . . . . . . . . . .    10
  107.                7.1 General Information  . . . . . . . . . . . . . . .    10
  108.                7.2 Function Keys  . . . . . . . . . . . . . . . . . .    11
  109.                7.3 Specific Information on Options in [M:Alt-T] . . .    11
  110.  
  111.           8. DIALING INTO ANOTHER COMPUTER  . . . . . . . . . . . . .    13
  112.                8.1 Dialing From Terminal-Mode . . . . . . . . . . . .    13
  113.                8.2 Dialing From the Autodial Directory ([M:Alt-D])  .    14
  114.                     8.2.1 Adding an Entry ([M:Alt-D,A]) . . . . . . .    14
  115.                     8.2.2 Changing/Modifying an Entry ([M:Alt-D,C]) .    14
  116.                     8.2.3 Dialing an Entry ([M:Alt-D,D] or Entry#)  .    15
  117.                     8.2.4 Sorting Entries ([M:Alt-D,S]) . . . . . . .    15
  118.                     8.2.5 Technical Notes . . . . . . . . . . . . . .    15
  119.  
  120.           9. SENDING AND RECEIVING FILES ([M:PgUp] and [M:PgDn])  . .    15
  121.                9.1 General Information  . . . . . . . . . . . . . . .    15
  122.                9.2  Sending  a  File  to  Another Computer  ([M:PgUp],
  123.                     `Uploading')  . . . . . . . . . . . . . . . . . .    16
  124.                     9.2.1 Basics  . . . . . . . . . . . . . . . . . .    16
  125.                     9.2.2 Aborting the Transfer . . . . . . . . . . .    16
  126.                     9.2.3 Technical Notes . . . . . . . . . . . . . .    17
  127.                9.3 Receiving a  File from Another Computer  ([M:PgDn],
  128.                     `Downloading')  . . . . . . . . . . . . . . . . .    18
  129.                     9.3.1 Basics  . . . . . . . . . . . . . . . . . .    18
  130.                     9.3.2 Technical Notes . . . . . . . . . . . . . .    18
  131.  
  132.           10. KEY-MACROS ([M:F1]) . . . . . . . . . . . . . . . . . .    18
  133.                10.1 General Information . . . . . . . . . . . . . . .    18
  134.                10.2 Invoking a Key-Macro  . . . . . . . . . . . . . .    19
  135.                10.3 Special Key-Macro Characters  . . . . . . . . . .    19
  136.  
  137.           11. SAVING OPTION CHANGES TO COMX ([M:F3])  . . . . . . . .    20
  138.  
  139.           12. RUNNING A SCRIPT FROM WITHIN COMX ([M:F4])  . . . . . .    20
  140.  
  141.           13.   SENDING  TERMINAL-MODE   CHARACTERS  TO   THE  PRINTER
  142.  
  143.                                           i                ([M:F5]) . . . . . . . . . . . . . . . . . . . . . . .    20
  144.  
  145.           14. SAVING TERMINAL-MODE CHARACTERS IN A FILE ([M:F6])  . .    20
  146.  
  147.           15. DOS ACCESS ([M:F7]) . . . . . . . . . . . . . . . . . .    21
  148.  
  149.           16. ABORTING A FILE TRANSFER PROGRAM ON ANOTHER COMPUTER
  150.                ([M:Alt-A])  . . . . . . . . . . . . . . . . . . . . .    21
  151.  
  152.           17. CHANGING SERIAL (COM) PORTS ([M:Alt-C] or [M:F2,A]) . .    21
  153.  
  154.           18. CHANGING PRINTER (LPT) PORTS ([M:F2,B]) . . . . . . . .    21
  155.  
  156.           19. INVOKING A WORD PROCESSOR OR EDITOR FROM WITHIN COMX
  157.                ([M:Alt-E])  . . . . . . . . . . . . . . . . . . . . .    21
  158.  
  159.           20. HANGING UP THE PHONE ([M:Alt-H])  . . . . . . . . . . .    21
  160.  
  161.           21. LOGGING FILE TRANSFERS ([M:Alt-L])  . . . . . . . . . .    22
  162.  
  163.           22. TURNING THE MAIN MENU OFF AND ON ([M:Alt-M])  . . . . .    22
  164.  
  165.           23. PRINTING A FILE DURING ITS DOWNLOAD ([M:Alt-P]) . . . .    22
  166.  
  167.           24. DISPLAYING A FILE DURING ITS DOWNLOAD ([M:Alt-S]) . . .    22
  168.  
  169.           25. REDIALING A PHONE NUMBER ([M:Alt-R])  . . . . . . . . .    22
  170.  
  171.           26. LISTING THE FILES IN A DIRECTORY ([M:F2,M]) . . . . . .    22
  172.  
  173.           27. VIEWING A TEXT FILE ([M:F2,N])  . . . . . . . . . . . .    23
  174.  
  175.           28. HOST-MODE ([M:F2,L])  . . . . . . . . . . . . . . . . .    23
  176.  
  177.           29. USING COMX UNDER DESQview (V. 2.2/2.3) AND WINDOWS 3.0     24
  178.  
  179.           30. CREATING A 132 COLUMN DISPLAY / MULTI-COM PORT DRIVER .    25
  180.  
  181.           31. SCRIPT FILES  . . . . . . . . . . . . . . . . . . . . .    27
  182.                31.1 General Information . . . . . . . . . . . . . . .    27
  183.                31.2 $Variables  . . . . . . . . . . . . . . . . . . .    28
  184.                31.3 Jump Labels . . . . . . . . . . . . . . . . . . .    29
  185.                31.4 Toggling Activity . . . . . . . . . . . . . . . .    29
  186.                31.5 Error Return Values from Commands (ERRVAL)  . . .    29
  187.                31.6 Basic Commands  . . . . . . . . . . . . . . . . .    30
  188.                31.7 Stack Commands (.op __) . . . . . . . . . . . . .    35
  189.                     31.7.1 General Information  . . . . . . . . . . .    35
  190.                     31.7.2 Math Operations on Stack Values  . . . . .    36
  191.                     31.7.3 Moving Values To, From and On Stack  . . .    37
  192.                     31.7.4 Comparison of Stack Values . . . . . . . .    37
  193.                31.8 Jump Commands (.op j_)  . . . . . . . . . . . . .    37
  194.  
  195.           32. TIPS AND TRICKS . . . . . . . . . . . . . . . . . . . .    38
  196.  
  197.           33. ASCII CHARACTER SET AND ANSI.SYS ATTRIBUTE
  198.  
  199.                                           ii                ESC SEQUENCES  . . . . . . . . . . . . . . . . . . . .    40
  200.  
  201.           34. COMX SCRIPT FILE TRACER AND DEBUGGER (CXTRACE.EXE)  . .    41
  202.  
  203.           35. FILE COMPRESSION AND DECOMPRESSION (CXCOMP.EXE) . . . .    42
  204.  
  205.           36. ACKNOWLEDGEMENTS  . . . . . . . . . . . . . . . . . . .    43
  206.  
  207.           37. LIABILITY . . . . . . . . . . . . . . . . . . . . . . .    43
  208.  
  209.           38. TECHNICAL SUPPORT . . . . . . . . . . . . . . . . . . .    43
  210.  
  211.           39. INDEX . . . . . . . . . . . . . . . . . . . . . . . . .    44
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.                                          iii
  256.           1. OVERVIEW AND HISTORY OF DEVELOPMENT
  257.  
  258.           COMX was  originally  developed to  provide  users of  PC's  easy
  259.           access  to UNIX  mainframes. From  the  start, I  also wanted  to
  260.           design  a program  that  could  be  ported  easily  to  different
  261.           hardware configurations. With  this in mind, COMX  was written in
  262.           `C',  `lex' and  assembly.  Direct  video access  was  kept to  a
  263.           minimum. COMX has  undergone extensive testing and  the resulting
  264.           program is before  you now. COMX offers terminal  emulation, file
  265.           transfer  capabilities, a  `host-mode'  and  an extensive  script
  266.           language.  COMX can  run under  a windowing  environment such  as
  267.           DESQview and Windows 3.0. The  script language which is  provided
  268.           is a low level, prefix notation language. A compiler is presently
  269.           being developed to support higher level commands.
  270.  
  271.                Benefits to using COMX:
  272.  
  273.                  Requires Only 130K of Memory
  274.                  Terminal Emulation  - Ten types are supported including
  275.                     printer control
  276.                  File Transfers  - Nine transfer protocols are supported
  277.                  132 Column Display
  278.                  Extensive Script File Language  - Supports merged scripts
  279.                     and flow control
  280.                  Command Line Script File Execution, Including Arguments
  281.                  Key-Macros
  282.                  Host-Mode
  283.                  Access Up To 15 COM Ports  -  At once or individually
  284.                  Operates Under DESQview and Windows 3.0
  285.                  Operates with CGA/EGA/VGA/Hercules Video Boards
  286.                  Operates on Generic MSDOS Computers
  287.                  Operates on 8086-80486 Computers
  288.                  Network Compatible
  289.                  Utility Programs: Script Tracer, File Compressor, Etc.
  290.  
  291.                  SPEED
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.                                           1
  312.           2. INFORMATION ON THE NOTATION IN THIS DOCUMENT AND ON COMX
  313.                MENU AND KEYBOARD USAGE
  314.  
  315.                My comments are enclosed in `{}'.
  316.  
  317.                <Esc> Means:  Press the Escape key. This will get you out of
  318.                most predicaments.
  319.  
  320.                <Enter> Means: Press the Enter/Return key.
  321.  
  322.                <Cntrl-U>   e.g.,  Means:  Press  the  Cntrl-key  &  `U'-key
  323.                together.
  324.  
  325.                [Alt-A]   e.g.,  Means:  Press   the  Alt-key   and  `A'-key
  326.                simultaneously.
  327.  
  328.                [F2] e.g., Means: Press the F2-function key.
  329.  
  330.                Menu  options are frequently  designated by the  key strokes
  331.                needed to execute them. For example, [F2,A] means: Press the
  332.                F2-function  key followed by the `A'-key. The following type
  333.                of notation  is also  used:  [M:F2,O,B]. In  this case,  the
  334.                preceding `M:' means that  the following key strokes can  be
  335.                executed from the main startup menu or terminal-mode.
  336.  
  337.                [...] Means: Optional argument in [].
  338.  
  339.                <...> Means: Required argument in <>.
  340.  
  341.                LF Means: linefeed (ascii 10); CR Means: carriage return
  342.                   (ascii 13).
  343.  
  344.                EOL Means: Text file end-of-line designation (normally
  345.                   CR/LF).
  346.  
  347.                Editing Input:
  348.  
  349.                   When you are  asked for more than one  character of input
  350.                   information, the following keys may be used  to edit your
  351.                   input as it is entered:
  352.  
  353.                   <Cntrl-U>        Erase the entire line.
  354.                   <Cntrl-End>      Erase  from the cursor to the end of the
  355.                                    line.
  356.                   <Home>           Move cursor to the start of the line.
  357.                   <End>            Move cursor to the end of the line.
  358.                   <Right>          Move cursor to the next character.
  359.                   <Left>           Move cursor to the previous character.
  360.                   <Cntrl-Right>    Move cursor to the next word.
  361.                   <Cntrl-Left>     Move cursor to the previous word.
  362.                   <Backspace>      Delete character before the cursor.
  363.                   <Delete>         Delete character under the cursor.
  364.  
  365.                   You can enter only one line of information.
  366.  
  367.                                           2                A final note: If you use a word processor to prepare  a COMX
  368.                script or key-macro  file, make sure that you  save the file
  369.                as a  DOS text  file. COMX does  not understand  the control
  370.                characters  that  are  frequently found  in  word  processor
  371.                files.
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.  
  401.  
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.                                           3
  424.           3. INSTALLING COMX
  425.  
  426.           3.1 COMX Files on The Installation Disk
  427.  
  428.                     Main Program (Only One Required)
  429.  
  430.           COMX.EXE       For 8086-80486 computers.
  431.           COMXG.EXE      For computers with IBM INcompatible serial
  432.                              port hardware.
  433.  
  434.                     Utility Programs
  435.  
  436.           CXTRACE.EXE    Script file tracer and debugger.
  437.           CXCOMP.EXE     File compression and decompression program.
  438.           CXDRIVER.EXE   Video and COM port driver creation program.
  439.  
  440.                     Miscellaneous Files
  441.  
  442.           COMXKEY.TXT    An example key-macro file.
  443.           COMXHELP.TXT   Text file containing the help information that
  444.                             is sent to a remote computer when COMX is in
  445.                             host-mode and an .he command is received.
  446.           CXDRIVER.TXT   A demo file which can be run through CXDRIVER.
  447.           COMXPWD0.TXT   An example password file for host-mode.
  448.  
  449.                     Script Files
  450.  
  451.           HOSTON.CEX     Host-mode activation - Required.
  452.           HOSTOFF.CEX    Host-mode deactivation - Required.
  453.           INSTALL0.CEX   An example of installation-script settings.
  454.           NETBRK.CEX     Broadband network hangup.
  455.           VT220KEY.CEX   VT220 function key mappings.
  456.           TELEKEY.CEX    Televideo 950 function key mappings.
  457.           SERVER.CEX     Example of server commands for a UNIX system.
  458.           STACK.CEX      Demonstration of COMX stack operations.
  459.           LINK.CEX       Set system parameters so that two computers
  460.                             linked by a null modem, and both running COMX,
  461.                             can communicate with one another.
  462.           LOGIN.CEX      A simple automatic login script.
  463.           MODEM.CEX      Sends Hayes commands to a modem to properly
  464.                             initialize it for COMX.
  465.           UNXHELP.CEX    A very simple help-menu script.
  466.           HANGUP.CEX     Sends commands to a modem to hangup the phone.
  467.           TOOLS.CEX      Some useful utilities from a menu.
  468.  
  469.           3.2 Hardware and MSDOS Requirements
  470.  
  471.           An MSDOS computer (MSDOS 2.11  or higher) and a  Hayes-compatible
  472.           modem  unless attached  to a  network.  If your  computer is  IBM
  473.           compatible, use COMX.EXE. If your computer has nonstandard serial
  474.           port  hardware, use COMXG.EXE.  (Uses Bios interrupts  for serial
  475.           I/O.) COMX.EXE requires 130K of memory.
  476.                The  MSDOS  extended screen  driver,  `ANSI.SYS', should  be
  477.           installed. Normally,  you  would do  this  by including  in  your
  478.  
  479.                                           4           `CONFIG.SYS' file the line, "DEVICE=ANSI.SYS". The latter assumes
  480.           that `ANSI.SYS' is in the root directory of your bootup drive.
  481.                COMX  can sense  the kind  of video  hardware which  you are
  482.           using and configure itself appropriately. The disk from which you
  483.           are running COMX.EXE should be writable.
  484.  
  485.           3.3 Copying Files to Your Computer
  486.  
  487.           Only those files which are marked `Required' above  are necessary
  488.           for  the  minimal operation  of  COMX.  You  should decide  on  a
  489.           directory for COMX.EXE. (This should be in your DOS Search PATH.)
  490.           You should also decide on a directory for your COMX script files.
  491.           (This need  not be  in your  DOS Search  PATH. If  you are  using
  492.           `COMX.EXE', you will be asked for  the name of this directory the
  493.           first  time you start COMX.) Files labeled `Miscellaneous' above,
  494.           should reside in  the root directory of your  bootup drive. Let's
  495.           assume that the  COMX distribution files are located  on a floppy
  496.           disk  in Drive  A:, and  that you  wish  to locate  COMX.EXE (and
  497.           utility programs)  in the root  directory of Drive C:  and script
  498.           files in the directory, C:\COMX. From Drive C: you would type the
  499.           following commands:
  500.  
  501.  
  502.                CD C:\
  503.  
  504.                MKDIR  COMX         {If   the   directory   doesn't  already
  505.                                    exist.}
  506.  
  507.                COPY  A:*.EXE
  508.                COPY  A:*.TXT  \    {These  files   must  be  in   the  root
  509.                                    directory of your bootup drive.}
  510.                COPY  A:*.CEX  COMX
  511.  
  512.  
  513.           3.4 Starting COMX and Finishing The Installation
  514.  
  515.           If  your computer is  attached to a  modem, turn on  the modem at
  516.           this time. For modems with dip switches which control  DTR and CD
  517.           lines, both  switches should  be set so  that the  lines are  NOT
  518.           FORCED  HIGH at  all times.  COMX will  not work  properly unless
  519.           these dip switches are set correctly.
  520.  
  521.           At the DOS prompt type: COMX <Enter>
  522.  
  523.           If your computer has  an active modem a series  of Hayes commands
  524.           will be sent to it. These  will configure it optimally for  COMX.
  525.           The commands are:
  526.  
  527.                AT&D2&C1L1TX1&W
  528.  
  529.           These commands will only be  sent if a CTS (clear-to-send) signal
  530.           is detected. The last command, `&W', writes the parameters to the
  531.           modem's nonvolatile memory. If  your modem does not  support this
  532.           command, you may wish to include the following  line in the file,
  533.           `COMXAUTO.CEX':
  534.  
  535.                                           5                .tr AT&D2&C1L1TX1^M
  536.  
  537.           `COMXAUTO.CEX' is a  script file which is  automatically executed
  538.           each  time  you start  COMX. It  should be  located in  your COMX
  539.           script directory.
  540.                During the installation  period, COMX will save  information
  541.           about your system  in the files, `COMXN.SET'and  `COMXMM.SET', in
  542.           your  root  directory.  The   next  time  you  start   COMX  this
  543.           information  will be recalled. After the installation period, you
  544.           will see the main COMX menu. If you press any key, other than one
  545.           of the function keys listed on the menu, the screen should clear.
  546.           You  are now in the  `terminal-mode'. In this  mode, any key that
  547.           you  type will be  passed on to  your modem via  the serial port.
  548.           Let's see if your modem is working properly.
  549.  
  550.                Type: AT <Enter>
  551.  
  552.           You  should see  `OK' displayed on  the screen. If  you do, all's
  553.           well  and you  could play  around a  little or  simply  exit COMX
  554.           ([Alt-X]). If not,  something may have  confused COMX during  the
  555.           installation, or your modem may  not have been turned on. If  the
  556.           latter was the case, exit COMX ([Alt-X]), turn on your  modem and
  557.           start  COMX  again.   However,  this  time   you  will  have   to
  558.           specifically tell COMX to initialize itself:
  559.  
  560.                Type: COMX /I <Enter>
  561.  
  562.           If your modem is on, check to see if the serial port settings are
  563.           correct. To do  so, bring  up the  main menu ([F10])  and on  the
  564.           status line, you'll see the  serial port settings for the current
  565.           serial (COM) port. You may  see something like, `1200E17',  which
  566.           stands for:
  567.  
  568.                1200 - Baud rate.
  569.                   E - Even parity.
  570.                   1 - 1 Stop bit.
  571.                   7 - 7 Bit word length.
  572.  
  573.                {These are the general default settings for a modem.}
  574.  
  575.           Is the baud rate correct for your modem? If not, hit [Alt-U]. The
  576.           cursor  will be  on the baud  rate value.  Use any normal  key to
  577.           bring up successive rate values  until the correct one is in  the
  578.           field. At  this point  you could change  the other  parameters by
  579.           using  the left  or right  arrow key to  move to  the appropriate
  580.           field  and any other  key to change  the value in  that field. To
  581.           save your new settings, just  press <Enter>. Your new values will
  582.           appear on the status line. Press [F3] to save this change for the
  583.           next time you invoke COMX. Now let's try your  modem again. Press
  584.           any non-function  key to return to the  terminal-mode. Repeat the
  585.           `AT' - test.  Still no response? Do you have more than one serial
  586.           port?  If   so,  COMX  may   have  gotten  confused   during  the
  587.           installation.  Press  [Alt-C]. This  will  move you  to  the next
  588.           higher serial port. Make sure  that your serial port settings are
  589.           correct as described above. (Different settings can be associated
  590.  
  591.                                           6           with different  serial ports.) Make  sure you press [F3]  to save
  592.           any  changes to  these settings.  Keep trying  to invoke  an `AT'
  593.           response until you've  exhausted all of your  serial ports. Still
  594.           no response?  Did you  remember to set  those modem  dip switches
  595.           correctly as  I told you  above? If not, exit  COMX now ([Alt-X])
  596.           and set  them. Reinitialize COMX  as I described earlier.  If all
  597.           else fails, try some of the startup options described below.
  598.                You  can specify  your default  installation  settings in  a
  599.           special  script file, `INSTALL.CEX',  which should be  located in
  600.           the  root  directory of  your  bootup  drive  or in  your  script
  601.           directory  if it happens to  be: C:\COMX. During the installation
  602.           of  COMX, settings will be  taken from this  script file. See the
  603.           sections on script files for more information.
  604.                At  some  point  you  should  verify  that  the  information
  605.           generated during COMX's initialization is correct.  Specifically,
  606.           there are  two pieces of  information which are critical  for the
  607.           normal operation of COMX. Both are located in the F2-Menu.  Press
  608.           [F2] to  get to  this menu.  If your  computer is  attached to  a
  609.           modem,  the entry  under item  [H] should  be CONNECT.  Also, the
  610.           script  file directory indicated under option [C] should coincide
  611.           with where  you copied  the COMX script  files. Change  these two
  612.           entries if necessary,  exit the F2-Menu and save  your changes by
  613.           pressing [F3].
  614.  
  615.           4. EXITING COMX ([M:Alt-X])
  616.  
  617.           Hit [Alt-X] from the main  menu or the terminal-mode screen. This
  618.           is the only way to do it.
  619.  
  620.           5. HELP ([M:F10])
  621.  
  622.           Hit [F10]  from the  main menu or  the terminal-mode  screen. The
  623.           main menu will be displayed.
  624.  
  625.           6. STARTUP OPTIONS
  626.  
  627.           In the following, `-' may  be substituted for `/'. Option letters
  628.           may be in lower case.
  629.  
  630.           Summary of Option Usage
  631.  
  632.                COMX /Port# /OPort# /VVaddr#  /CCOLORS /D /E /H /I  /M /P /S
  633.                     [Script File List] [-- $Argument List]
  634.  
  635.           /Port#    Where Port# =  1 -> maximum number  of serial
  636.                     ports. Normally,  COMX initializes  itself to
  637.                     the  COM Port  to which  an  active modem  is
  638.                     attached.  This  option  will  override  that
  639.                     feature, so that on  entry, the current  port
  640.                     will be the COM Port#. Other ports will still
  641.                     be active.
  642.  
  643.                     For example:  COMX /2   {Enter on COM2}
  644.  
  645.           /CCOLORS  Set  colors  for   bold,  reverse  video  and
  646.  
  647.                                      7                     underline where:
  648.                     COLORS  =  A  three  character  string  (e.g.
  649.                     /CYWR). The first character of the string  is
  650.                     the code  for bold;  the second  character of
  651.                     the string is the code for reverse video; the
  652.                     third character  is the  code for  underline.
  653.                     These codes  only apply  if you  are using  a
  654.                     color   monitor.   On   monochrome  displays,
  655.                     underlined   characters   will   actually  be
  656.                     underlined.
  657.  
  658.                     Bold Code
  659.  
  660.                     Y: Yellow characters on a blue background.
  661.                     W: White on blue.
  662.                     R: Red on blue.
  663.                     G: Green on blue (default).
  664.  
  665.                     Reverse Video Code
  666.  
  667.                     Y: Yellow on red.
  668.                     B: Black on green.
  669.                     G: Green on black.
  670.                     C: Cyan on black (default).
  671.  
  672.                     Underline Code
  673.  
  674.                     Y: Yellow on blue (default).
  675.                     W: White on blue.
  676.                     R: Red on blue.
  677.                     G: Green on blue.
  678.  
  679.           /D        Set DTR signal  OFF (Low) at all  times. {RTS
  680.                     is always ON (High)}
  681.  
  682.           /E        Computer equipment report only.
  683.  
  684.           /I        Force the initialization of COMX. Appropriate
  685.                     scripts may be run  with this to specifically
  686.                     customize various COMX parameter options.
  687.  
  688.           /H        If  your VGA  board is  emulating  a Hercules
  689.                     board and you are not seeing  bold characters
  690.                     in the menus, use this option.
  691.  
  692.           /M        Monochrome display. {Use only if problems are
  693.                     experienced.}
  694.  
  695.           /OPort#   Open  a  specific  COM Port#  and  no others.
  696.                     Port#  = 1 -> maximum number of serial ports.
  697.                     Normally,   all   ports    are   opened   and
  698.                     initialized.
  699.  
  700.           /P        A specific video hardware address is not used
  701.                     for display paging. {Use only if problems are
  702.  
  703.                                      8                     experienced.}
  704.  
  705.           /S        Turn off the terminal-mode status line.
  706.  
  707.           /VVaddr#  Use a specific video segment address (Vaddr#,
  708.                     hexidecimal) for display output. For example,
  709.                        VB800  - Default for color card.
  710.                        VB000  - Default for monochrome card.
  711.                     Be  very careful  of this  option; make  sure
  712.                     that the address is correct. 
  713.  
  714.           [Script File List]
  715.  
  716.                     One  can have  COMX run  one  or more  script
  717.                     files automatically  on startup  by including
  718.                     the  names  of  these  script  files  on  the
  719.                     command line. For example,
  720.  
  721.                          COMX modem login
  722.  
  723.                     A .CEX extension is assumed.
  724.  
  725.           [-- $Argument List]
  726.  
  727.                     $Arguments  will  replace $Variables  in  the
  728.                     FIRST  script  that  is  also  given  on  the
  729.                     command  line.  (See   script  file  sections
  730.                     below.)
  731.                     For example,
  732.  
  733.                          COMX sendfile -- file1 file2
  734.  
  735.                     In  the above example, assume that there is a
  736.                     script     file,    `sendfile.cex',     which
  737.                     automatically   connects   you   to   another
  738.                     computer  and  executes  a  command  on  that
  739.                     computer   to  start   a   file  upload.   In
  740.                     `sendfile.cex'  the  script file  command  to
  741.                     begin the upload might be something like:
  742.                          .ru 0 kermit s $1 $2
  743.                     In this example, `file1' would be substituted
  744.                     for $1,  and `file2' would be substituted for
  745.                     $2 in  the script  command. There  is also  a
  746.                     special $Argument,
  747.                          -?[prompt]
  748.                     which  will  result  in  a  prompt  for  that
  749.                     argument;  your  input  will  then replace  a
  750.                     $Variable. Spaces can be represented by  `^S'
  751.                     in  the   $Argument  and   [prompt].  Control
  752.                     characters can be represented as described in
  753.                     Section     10.3,      "Control     Character
  754.                     Representation". For example,
  755.                          -?File^SName?^S^G
  756.                     There   can  be   multiple  -?s.   Successive
  757.                     $Variables  will be  replaced beginning  with
  758.  
  759.                                      9                     $1.
  760.  
  761.           7. TERMINAL EMULATION ([M:Alt-T])
  762.  
  763.           7.1 General Information
  764.  
  765.           Most mainframes support some kind of terminal emulation, and COMX
  766.           provides   extensive   support  for   various   emulation  types.
  767.           Basically,  terminal  emulation  allows  the  other  computer  to
  768.           recognize what you mean when,  for example, you hit the up  arrow
  769.           key. It's really quite a bit more complicated than this, but this
  770.           brief  explanation  should   suffice  for  now.  After   COMX  is
  771.           initialized, the default emulation type is DEC  VT100. (This also
  772.           supports VT102  & VT220  emulations.) If you  need to  change the
  773.           type of  terminal emulation, you  would do so by  hitting [M:Alt-
  774.           T,A].  A great  deal  of trouble  was  taken to  ensure that  the
  775.           default option settings in the [Alt-T] menu produce the smoothest
  776.           emulation; however,  there may be  times when  it's necessary  to
  777.           change  these  settings.  (Be  forewarned,  that  some  mainframe
  778.           programs will change  some of these settings for you.  So, if you
  779.           are  experiencing difficulties after running a program, check the
  780.           settings.)
  781.                To change the terminal emulation type hit: [M:Alt-T,A]
  782.           Just press  the letter  next to the  emulation type  desired. You
  783.           will  be returned  to the  previous menu.  Note that  the current
  784.           emulation type under [A] has been updated.
  785.                Each emulation has a unique  abbreviation. This abbreviation
  786.           is important,  since you  need to use  it in  setting a  specific
  787.           terminal emulation type from script files, e.g.,
  788.  
  789.                `.terminal vt100' {See script file sections below.}
  790.  
  791.           As  a reference, abbreviations for the various terminal emulation
  792.           types are as follows:
  793.  
  794.                Terminal            Abbreviation
  795.  
  796.                VT220/VT10x[1]      vt100
  797.                VT52                vt52
  798.                VI300               vi300
  799.                ANSI                ansi
  800.                IBM 3101            ibm3101
  801.                Televideo 950[1]    tele950
  802.                Lear ADM 3/5        adm5
  803.                ADDS Viewpoint      adds
  804.  
  805.  
  806.                Frequently, the other  computer needs to be  informed of the
  807.           type of terminal emulation you are using. On a  UNIX computer you
  808.           might issue the command: setenv TERM vt100
  809.                               
  810.  
  811.                [1]Printer control  commands are supported. If  your printer
  812.           is not ready to print, COMX will abort  the command after beeping
  813.           several times.
  814.  
  815.                                           10           7.2 Function Keys
  816.  
  817.           The arrow keys produce the  correct responses under the different
  818.           emulations.  In addition <Home>  moves the  cursor to  the `home'
  819.           position on the  screen and <End> will erase  the characters from
  820.           the current cursor position to the end of the line. The following
  821.           keys   are   specifically   mapped   for   VT220/VT102/VT100/VT52
  822.           emulations:
  823.  
  824.                VT100-220 COMX Key Board
  825.                Key
  826.  
  827.                PF1       Shift-F1
  828.                PF2       Shift-F2
  829.                PF3       Shift-F3
  830.                PF4       Shift-F4
  831.  
  832.                Keypad:
  833.                1         Alt-1
  834.                2         Alt-2
  835.                3         Alt-3
  836.                4         Alt-4
  837.                5         Alt-5
  838.                6         Alt-6
  839.                7         Alt-7
  840.                8         Alt-8
  841.                9         Alt-9
  842.                0         Alt-0
  843.                -         Alt-F1
  844.                ,         Alt-F2
  845.                .         Alt-F3
  846.                <Enter>   Alt-F4
  847.                <Break>   Alt-B
  848.  
  849.           Except  for <Break>,  these keys  have  no meaning  to the  other
  850.           terminal emulation types. Two script files are provided to enable
  851.           mapping of the extended function  keys of VT220 and Televideo 950
  852.           emulations.  These  files are  `VT220KEY.CEX'  and `TELEKEY.CEX',
  853.           respectively. You will need to load these mappings into your key-
  854.           macro  buffer, so that  they can be  used. To do  this for, e.g.,
  855.           VT220 emulation:
  856.  
  857.                1) From the  terminal-mode or main menu, hit  [F4]  {Respond
  858.                with: vt220key.}
  859.                2) To use a key in terminal-mode, e.g. [F5]: [F1,F5] or e.g.
  860.                [F20]: [F1,1,F10]
  861.  
  862.                {See section on key-macros.}
  863.  
  864.           7.3 Specific Information on Options in [M:Alt-T]
  865.  
  866.                [M:Alt-T,A]
  867.                     Terminal  Emulation  Type:  Covered  above. (Default  =
  868.                     vt100)
  869.  
  870.  
  871.                                           11                [M:Alt-T,B]
  872.                     Tab Size:  The width  of tab-stops can  be set  to 2-20
  873.                     columns. (Default = 8)
  874.  
  875.                [M:Alt-T,C]
  876.                     Wrap  Line:  Incoming  characters  which go  beyond  80
  877.                     columns are `wrapped' to the next line. (Some mainframe
  878.                     programs will turn this off for you.) (Default = YES)
  879.  
  880.                [M:Alt-T,D]
  881.                     Translate Incoming LF .... Normally an incoming line of
  882.                     text  ends  with   a  CR/LF.  However,   under  certain
  883.                     situations this may  not be the case, and  you may need
  884.                     to use this option. One case  in which this needs to be
  885.                     used is  when you have  two computers connected  with a
  886.                     null modem and both are running COMX. (Default = NO)
  887.  
  888.                [M:Alt-T,E]
  889.                     Graphics  Character  Display:   Normally,  the  8th-bit
  890.                     (graphics bit) of an incoming character is stripped off
  891.                     before the character is displayed. If you are connected
  892.                     to  a computer  which is  capable  of sending  graphics
  893.                     characters,  you should turn on this option. (Default =
  894.                     NO)
  895.  
  896.                [M:Alt-T,F]
  897.                     Destructive Backspace: Normally,  an incoming backspace
  898.                     character  (ascii 8)  simply moves  the  cursor to  the
  899.                     left. This  option will  also blank  out the  character
  900.                     onto which the cursor has moved. (Default = NO)
  901.  
  902.                [M:Alt-T,G]
  903.                     Xon/Xoff  Flow Control: COMX will provide Ctrl-S/Q flow
  904.                     control  with  its terminal  emulation. Using  this may
  905.                     cause problems if you  are also using a  modem; garbage
  906.                     characters  which  are  received  by  COMX   after  you
  907.                     disconnect from another  computer may inactivate serial
  908.                     I/O. I would recommend that you use this option only if
  909.                     you  appear  to  be losing  characters  from  the other
  910.                     computer.  This may occur  if you are  communicating at
  911.                     baud rates greater than 4800. (Default = NO)
  912.  
  913.                [M:Alt-T,H]
  914.                     Enable  132   Column  Display:   COMX  is   capable  of
  915.                     displaying 132 columns (x 25 rows), but only if you are
  916.                     using  a VGA card which can provide 132 column display.
  917.                     If you choose to enable  this option, you will be asked
  918.                     for a  string consisting of  two values separated  by a
  919.                     space (e.g.,  55 1). The first value corresponds to the
  920.                     INT  10H extended video  mode value (hexidecimal) which
  921.                     your VGA  card uses for  132 columns. The  second value
  922.                     (1=Yes,0=No) indicates that COMX should either use  (1)
  923.                     or  not use  (0) its  own 8x16  character font  for 132
  924.                     columns.  For a Paradise VGA Plus  16 card, the correct
  925.                     string is: 55 1
  926.  
  927.                                           12                     To  determine the  video mode  value  to use  with your
  928.                     particular card, do the following:
  929.  
  930.                     1)  From  DOS,  execute the  program  or  command which
  931.                     causes your  monitor to  go into  132x25 display  mode.
  932.                     (See  the instruction manual  which came with  your VGA
  933.                     card.)
  934.  
  935.                     2) Type: COMX /E <Enter> The video mode value which you
  936.                     should use is indicated on the second line (`Video Mode
  937.                     ...'). The value  (first of two) should be greater than
  938.                     7.
  939.  
  940.                     If you  enable 132 column display, then  you can either
  941.                     invoke COMX  in this mode  (as long as your  monitor is
  942.                     already in this mode as described in 1) above), or COMX
  943.                     will  be  capable  of switching  to  this  mode if  the
  944.                     appropriate   terminal   emulation-reset   command   is
  945.                     received from another computer. (Default = NO)
  946.  
  947.                     Note: Your VGA card may  require the use of an extended
  948.                     DOS INT 10H function to switch to  132x25 display mode.
  949.                     Since  switching  is  normally  done through  function,
  950.                     0x0fH, you  may have to  use the program,  CXDRIVER, to
  951.                     create a  video driver  which would  enable you  to use
  952.                     this option. Please refer to the documentation below on
  953.                     how to create such a driver.
  954.  
  955.                [M:Alt-T,I]
  956.                     Duplex:  In full  duplex mode,  COMX  assumes that  the
  957.                     characters  which you  type  in terminal-mode  will  be
  958.                     echoed back  to your computer by the  other machine. In
  959.                     half   duplex  mode,   COMX  itself  will   echo  these
  960.                     characters. (Default = FULL)
  961.  
  962.                [M:Alt-T,J]
  963.                     Break  Signal  Duration:  This is  the  length  of time
  964.                     (multiple of  55 ms)  in which a  break signal  is sent
  965.                     when  [Alt-B]  is  hit.  The default  is  5  for  VT100
  966.                     emulation.
  967.  
  968.           8. DIALING INTO ANOTHER COMPUTER
  969.  
  970.           8.1 Dialing From Terminal-Mode
  971.  
  972.           Before you begin,  you should know what serial  port settings are
  973.           used by the other computer and make the necessary changes in COMX
  974.           using  [M:Alt-U],  so   that  the  settings  at   both  ends  are
  975.           comparable. Now, from the terminal-mode you can send a command to
  976.           the modem to have it dial the other computer's phone number. This
  977.           may be a command like:
  978.  
  979.                ATD2334188 <Enter>
  980.  
  981.                {See your modem manual if this doesn't work.}
  982.  
  983.                                           13           If  this  is the  correct  phone  number,  and your  serial  port
  984.           settings agree, you're in luck.
  985.  
  986.           8.2 Dialing From the Autodial Directory ([M:Alt-D])
  987.  
  988.           8.2.1 Adding an Entry ([M:Alt-D,A])
  989.  
  990.           You can store phone numbers  and other information in a directory
  991.           so that you can quickly connect  to another computer at the press
  992.           of a key. This information  is saved in the file, `comx.adr',  in
  993.           your root  directory. The  first time  you enter this  directory,
  994.           there will be no information in  it. You must first add an  entry
  995.           to use it.  To do  so, hit  [A]. You will  be asked  a series  of
  996.           questions:
  997.  
  998.                1) Script?
  999.                     If you wish COMX  to automatically invoke a  script for
  1000.                     that particular entry (e.g., to log you in), you should
  1001.                     enter the  script name  here. Do not  include the  .CEX
  1002.                     extension.  All  punctuation   characters  (*,;.?)  and
  1003.                     blanks will be  stripped from the script  name. If your
  1004.                     script has a `.di' or  `.gb' command in it, the command
  1005.                     will be ignored.  (See script sections below.)  You can
  1006.                     use a dummy script name if  you like or have no  script
  1007.                     name.
  1008.                2) Description?
  1009.                     This  is a brief description of your entry. Punctuation
  1010.                     is allowed. You can leave it blank if you wish.
  1011.                3) Phone Number?
  1012.                     There  has to be something in this  field. It can be an
  1013.                     actual  phone number  (e.g.,  0001111). You  can prefix
  1014.                     this number  with a Hayes command (e.g.,  ATP 000 1111)
  1015.                     (`ATD' is the default), and you can imbed modem control
  1016.                     characters in it (e.g.  1,,800 0001111). The entry does
  1017.                     not have to be a phone  number (e.g.  ~call 8200).  For
  1018.                     the latter case,  a `~' was placed before  the  command
  1019.                     to circumvent a dialup attempt. The `~' is ignored.
  1020.                4) Serial Port Settings?
  1021.                     Your  entry can  have  a  unique  serial  port  setting
  1022.                     associated  with  it.  The  current  settings  are  the
  1023.                     defaults. Changes to  these settings are made  by using
  1024.                     the left or right arrow key to move to a specific field
  1025.                     and any other key to  move through successive values in
  1026.                     each field. Hit <Enter> to finalize your settings.
  1027.                5) Save?
  1028.                     `y' or `n'
  1029.  
  1030.           If you add  more than 10 entries,  the additional entries can  be
  1031.           viewed  using [+] or [-] to  page you forward or backward through
  1032.           them.
  1033.  
  1034.           8.2.2 Changing/Modifying an Entry ([M:Alt-D,C])
  1035.  
  1036.           Now  that you have  entered something, you  should see  it in the
  1037.           directory  listing. Let's suppose  you want to  change the values
  1038.  
  1039.                                           14           associated with a particular entry. Press [C,m]  -> Entry Number?
  1040.           Give  the  Entry  Number  you  wish  to  modify.  The  subsequent
  1041.           questions are similar to those asked when adding an entry, except
  1042.           that this  time, if you do  not wish to change a  value, just hit
  1043.           <Enter>.   Otherwise,   enter  something   to   replace  existing
  1044.           information, or a `*' to blank the value.
  1045.                You can delete or undelete an entry under option [C]. If you
  1046.           delete an entry  ([C,d]), you will see  a `*' next to  the entry.
  1047.           This  only marks  an  entry for  deletion.  The deletion  doesn't
  1048.           become effective  until you  exit the  directory ([X]).  Escaping
  1049.           (<Esc>) from the  directory will abort any changes  that you have
  1050.           made to it.
  1051.  
  1052.           8.2.3 Dialing an Entry ([M:Alt-D,D] or Entry#)
  1053.  
  1054.           This can be done in either of two ways:
  1055.  
  1056.                1) Press [D] and give the entry number.
  1057.                2) Just hit the entry number (e.g. 5).
  1058.  
  1059.                If  you  are on  another  directory  page (e.g.,  one  which
  1060.                contains  entries: 11-20), you  need only hit,  e.g., [0] to
  1061.                dial  Entry# 20. Once you dial the number, COMX will wait up
  1062.                to 30 seconds for a  carrier signal from the other computer.
  1063.                If you want to abort the operation, press <Esc>.
  1064.  
  1065.           8.2.4 Sorting Entries ([M:Alt-D,S])
  1066.  
  1067.           Directory  entries can be sorted  in ascending or decending order
  1068.           for easier reference.
  1069.  
  1070.           8.2.5 Technical Notes
  1071.  
  1072.           After dialing a number COMX can adjust to a lower baud rate which
  1073.           the other computer  might be using. (This is done in an identical
  1074.           fashion to that described below for the .gb script command.) COMX
  1075.           makes this adjustment  by looking for an extended  modem command,
  1076.           typically "CONNECT" (e.g.,  CONNECT 1200), which is issued by the
  1077.           modem following the  connection. On COMX installation,  the modem
  1078.           (if one is active) is told to use the extended modem command set.
  1079.           In  addition, the entry in [M:F2,H] is  set to "CONNECT". If, for
  1080.           some  reason,  the  command is  different,  change  the  entry in
  1081.           [M:F2,H], or  if your modem  cannot use these  extended commands,
  1082.           delete this entry. (This is Important.)
  1083.  
  1084.           9. SENDING AND RECEIVING FILES ([M:PgUp] and [M:PgDn])
  1085.  
  1086.           9.1 General Information
  1087.  
  1088.           To  send or receive  a file(s) to  or from another  computer, you
  1089.           must  first connect  to that  computer. I've described  above how
  1090.           this can be  accomplished. Next, from the  terminal-mode you will
  1091.           have  to issue  a command  on the  remote computer  to start  the
  1092.           transfer  at  that  end.  COMX  supports  several  file  transfer
  1093.           protocols including:
  1094.  
  1095.                                           15                Protocol       Description
  1096.  
  1097.                Kermit         Batch,   with   8-bit   and  repeat-character
  1098.                               prefixing,   1-3   byte    error   detection,
  1099.                               `k'[2].
  1100.                Xmodem         128  Byte blocks,  checksum error  detection,
  1101.                               `x'.
  1102.                Xmodem [CRC]   128 Byte blocks, CRC error detection, `xc'.
  1103.                Ymodem         1K Byte blocks, checksum, `y'.
  1104.                Ymodem [CRC]   1K Byte blocks, CRC, `yc'.
  1105.                Ymodem [BATCH] Batch, 1K byte blocks, CRC, `ya'.
  1106.                Ymodem-G       Batch, 1K byte blocks, CRC, `yg'.
  1107.                Modem7         Batch, 128 byte blocks, checksum, `m7'.
  1108.                Ascii          No error detection, `a'.
  1109.  
  1110.           `Batch' means that multiple files may be sent or  received in one
  1111.           session.  The X/Ymodem protocols conform to the details published
  1112.           in, "Xmodem/Ymodem Protocol Reference.  A Compendium of Documents
  1113.           Describing  the Xmodem and Ymodem File Transfer Protocols" (Chuck
  1114.           Forsberg, ed., 1987).
  1115.                Now that you know what's  available, you can issue a command
  1116.           on the  other computer to start a  program compatible with one of
  1117.           the above protocols. Read on first, though.
  1118.  
  1119.           9.2 Sending a File to Another Computer ([M:PgUp], `Uploading')
  1120.  
  1121.           9.2.1 Basics
  1122.  
  1123.           After  you have  started a  file  transfer program  on the  other
  1124.           computer, specifically to DOWNLOAD a file, press [PgUp]. You will
  1125.           be presented  with  a number  of  protocol choices  as  described
  1126.           above. Select  the desired protocol.  You will next be  asked for
  1127.           the name  of the file  (`file(S)' for batch protocols)  which you
  1128.           wish to  send. If  you are sending  more than  one file,  you can
  1129.           enter file names separated  by spaces, commas or  semicolons, and
  1130.           you can use DOS metacharacters (e.g.  filex,d:\tmp\filey.*  ). If
  1131.           you have forgotten the file  name(s), just enter a directory name
  1132.           and the files in that directory will be listed.  If the directory
  1133.           name  is capitalized,  you will  get a  long listing  of entries;
  1134.           otherwise, a short listing will be displayed. After the directory
  1135.           listing  is displayed,  you  will  again be  asked  for the  file
  1136.           name(s).
  1137.                If all  goes well, the  file(s) will begin  transferring and
  1138.           you should  see the progress  of this transfer displayed  on your
  1139.           screen.
  1140.  
  1141.           9.2.2 Aborting the Transfer
  1142.  
  1143.           If you press  <Esc> at some point,  the COMX end of  the transfer
  1144.           will  be aborted (after  some delay), and  you MAY see  a message
  1145.           like:
  1146.                               
  1147.  
  1148.                [2]This is  the abbreviation you  will use to  designate the
  1149.           protocol in a script file. (See script file sections.)
  1150.  
  1151.                                           16                `Remote Transfer Abort: ....'
  1152.  
  1153.           Don't  panic. This  simply  means  that you  have  the option  of
  1154.           aborting the  transfer  program which  is  running on  the  other
  1155.           computer.  Respond according  to  the  protocol  you  are  using.
  1156.           Incidentally, this request  is also available from  terminal-mode
  1157.           ([M:Alt-A]).
  1158.  
  1159.           9.2.3 Technical Notes
  1160.  
  1161.           COMX analyzes a file before it is sent to determine whether it is
  1162.           a   text  or  binary   file.  (Certain  protocols   require  this
  1163.           distinction.) The algorithm which COMX  uses, looks at the  first
  1164.           1000 characters for ascii values greater than 127 or 0 (null). If
  1165.           such characters are  present or if  it finds  LF's which are  not
  1166.           preceded by CR's, then it assumes that the file is binary (image,
  1167.           graphics). If you are  experiencing problems related to  the file
  1168.           type, you can  force COMX to ask  you for the type,  and use this
  1169.           type, each  time you  send a file.  You would  do so  by pressing
  1170.           [M:F2,O,H]. Don't  forget to  save this  option change  ([M:F3]).
  1171.           Binary files are typically *.exe, *.com and *.arc files and those
  1172.           produced by various graphics packages. They also  may be produced
  1173.           by word processors. For text files, COMX interprets Ctrl-Z as the
  1174.           end of  file (EOF)  mark. If,  for some  reason,  your text  file
  1175.           contains  additional Ctrl-Z's (i.e.  ones which occur  before the
  1176.           end of the file),  then you can force COMX to  not interpret them
  1177.           as EOF's by using the  [M:F2,O,H] option. (When sending the file,
  1178.           specify that  the file  is a text  file.) Graphics  characters in
  1179.           text files can be handled in the  same way, if you want the  file
  1180.           sent as a text file.
  1181.                X/Ymodem  protocols   may  not  work   properly  over  7-bit
  1182.           networks. However, one of the options ([M:F2,O,J]) may allow this
  1183.           operation provided  that the  other program  also recognizes  the
  1184.           change in protocol.
  1185.                You can specify an  underlying Xon/Xoff (Ctrl-Q/S)  protocol
  1186.           with  your transfer ([M:F2,O,I]). This works  on uploads only. To
  1187.           be effective,  the other  side must also  recognize this  option.
  1188.           This  helps when  a mainframe  is busy  and you  are experiencing
  1189.           buffer overruns.
  1190.                You can specify the default directory from  which files will
  1191.           be  sent  ([M:F2,E]). This  can  be overridden  by  including the
  1192.           directory with the file name.
  1193.                For  text  files,  COMX can  specify  the  end-of-line (EOL)
  1194.           designation in a variety of formats  to ensure compatibility with
  1195.           a format on another computer ([M:F2,O,B-D]). The default settings
  1196.           should be acceptable to most mainframe computers.
  1197.                For X/Ymodem protocols, a Ctrl-Z is appended to the end of a
  1198.           text file, and  the remainder of the  block is padded with  nulls
  1199.           (ascii 0).
  1200.                There  is a  nonstandard Kermit  option  provided with  COMX
  1201.           ([M:F2,O,P])  which will  allow  the  transmission  of  512  byte
  1202.           packets (uploads  or downloads). Contact  the author of  COMX for
  1203.           further details.
  1204.                Occasionally, you  may see a  period (`.') displayed  on the
  1205.           screen instead of  a byte number.  This means that a  timeout has
  1206.  
  1207.                                           17           occurred during the transmission.
  1208.                The  length of  timeouts and  the maximum  number  of packet
  1209.           retries can be changed:
  1210.           [M:F2,O,E-G]. Default values should be optimal however.
  1211.                Various  parameter values  for  Kermit  can  be  changed  in
  1212.           [M:F2,O], however, I would not advise doing so.
  1213.                The way ascii uploads are handled can be specified using the
  1214.           .as script file  command. (See script  file sections below.)  You
  1215.           can also change this specification using `TOOLS.CEX'.
  1216.  
  1217.           9.3   Receiving  a   File   from   Another  Computer   ([M:PgDn],
  1218.           `Downloading')
  1219.  
  1220.           9.3.1 Basics
  1221.  
  1222.           Now that  you've gotten all  of that under  your belt,  let's try
  1223.           receiving a file. The process is the same, although this time you
  1224.           will first start a file UPLOAD on the other computer, followed by
  1225.           pressing  [PgDn]. Select the protocol and answer the questions as
  1226.           described above. If you are using  a batch protocol, you will not
  1227.           be asked for  a file name; this(ese) is sent along with the file.
  1228.           In the latter case, if the file name is unacceptable to  DOS, you
  1229.           will be prompted for a new file name. If the file already exists,
  1230.           a  new  name  will  be  created with  a  `$'  replacing  the last
  1231.           character in the name. In contrast  to uploads, you will be asked
  1232.           whether the file is text or binary. All files for a given session
  1233.           should be of the same type; in a batch transfer, you will not  be
  1234.           asked this question for each file.
  1235.                Normally,  if the download is  aborted, the received file to
  1236.           that point is saved.  However, you also have the option of having
  1237.           it deleted automatically  ([M:F2,O,A]). You can also  specify the
  1238.           directory in which a received file will be placed ([M:F2,D]). The
  1239.           latter  can be  overridden  by  giving the  full  path file  name
  1240.           (nonbatch protocol).
  1241.  
  1242.           9.3.2 Technical Notes
  1243.  
  1244.           For  received  text files,  COMX  will correctly  handle,  and if
  1245.           necessary translate,  several end-of-line  formats (CR,  CR/LF or
  1246.           LF).
  1247.                For ascii DOWNLOADS, you can start the UPLOAD from the OTHER
  1248.           computer  AFTER pressing  [PgDn] and  selecting `a'. You  will be
  1249.           prompted for the  command which will start sending  the file from
  1250.           the other machine.
  1251.  
  1252.           10. KEY-MACROS ([M:F1])
  1253.  
  1254.           10.1 General Information
  1255.  
  1256.           A key-macro is  a line  of text  sent to the  modem and/or  other
  1257.           computer after  a specific key  is pressed in  the terminal-mode.
  1258.           Optionally,  the text can also be sent  to the printer or screen.
  1259.           The text can be a command recognized by the other computer (e.g.,
  1260.           `dir  wp^m') or  anything else.  Normally, you  would use  a word
  1261.           processor to  enter  these  macros  into  a  special  COMX  file,
  1262.  
  1263.                                           18           `COMXKEY.TXT', which should  be located in the root  directory of
  1264.           your  bootup   drive.  On   starting  COMX,   these  macros   are
  1265.           automatically loaded  into a key-macro  buffer. In  `comxkey.txt'
  1266.           there should only be one macro per line; blank lines are ignored.
  1267.           There can  be up  to 30 macros  in the file.  You can  also place
  1268.           specific macros in the buffer by using the script command:
  1269.  
  1270.                .km <n> <text>   {See script sections below.}
  1271.  
  1272.           10.2 Invoking a Key-Macro
  1273.  
  1274.           Once  you have  created the  file, `COMXKEY.TXT',  macros can  be
  1275.           invoked from the terminal-mode. (An example file is provided with
  1276.           this package.)  First, however,  let's see what  you have  in the
  1277.           buffer. Press  [M:F1,h]. You  will see  a  listing of  key-macros
  1278.           along with  their function  key assignments.  Let's suppose  that
  1279.           `ls^M'  is  assigned to  [F1].  To  invoke  this macro  from  the
  1280.           listings  menu, just  press [F1].  If you  wanted to  invoke this
  1281.           macro  from the terminal-mode,  you would press  [F1] followed by
  1282.           [F1]. The listing menu  is divided into 3 pages. (Page:  0 is the
  1283.           first  page -see the  menu header.)  If you  have, let's  say, 18
  1284.           macros and  macro #16  is `mail^M', you  could invoke  this macro
  1285.           directly from the terminal-mode by pressing:
  1286.                [M:F1,1,F6]
  1287.           In this  case, the second argument,  1, is the page  number. Page
  1288.           numbers can also be used with the `h' option, e.g.,
  1289.                [M:F1,1,h]
  1290.           or from within the listings menu, e.g.,
  1291.                [1,h]
  1292.           You may also move  to a different page  from within the  listings
  1293.           menu and activate the macro, e.g.,
  1294.                [M:F1,h,1,F6]   {For macro #16}
  1295.  
  1296.           10.3 Special Key-Macro Characters
  1297.  
  1298.           Special character sequences can be used to control  the execution
  1299.           of a macro:
  1300.  
  1301.                Control Character Representation
  1302.  
  1303.                {The case  of the following letters is  not important. Also,
  1304.                `^J', e.g., means: `^' followed by `J'.}
  1305.  
  1306.                ^J   - Linefeed. {A ^J is NOT automatically added.}
  1307.                ^M   - Carriage Return. {A ^M is NOT automatically added.}
  1308.                ^[   - Escape.
  1309.                ^I   - Tab.
  1310.                ^G   - Beep.
  1311.                ^L   - Formfeed.
  1312.                ^S   - A Space Can be Represented by ^S.
  1313.                ^^   - Control-^
  1314.                \^   - ^ Itself.
  1315.  
  1316.                {Other representations are also possible, e.g., ^A,^B ....}
  1317.  
  1318.  
  1319.                                           19                If you need leading spaces before a command precede them
  1320.                with a `"', e.g.,   "  mail^M
  1321.                Normally, all leading spaces are  ignored. (The first `"' on
  1322.                the line is ignored.)
  1323.  
  1324.                Output Control Sequences
  1325.  
  1326.                ^C   -    A starting ^C  means: send the text  which follows
  1327.                          ^C to the COM port. (This is optional,  since this
  1328.                          is the default.)
  1329.                ^P   -    A starting ^P  means: send the text  which follows
  1330.                          ^P to the printer.
  1331.                ^R   -    A  starting ^R means: run the script which follows
  1332.                          ^R. $Arguments to the script may also be included.
  1333.                ^T   -    A starting ^T  means: send the text  which follows
  1334.                          ^T to the terminal.
  1335.                 #   -    The text which follows `#' is a
  1336.                          comment and is not sent. {\# = # Itself}
  1337.  
  1338.           11. SAVING OPTION CHANGES TO COMX ([M:F3])
  1339.  
  1340.           To save any changes to the options in the various menus,  so that
  1341.           they  will be  effective  the  next time  you  start COMX,  press
  1342.           [M:F3].
  1343.  
  1344.           12. RUNNING A SCRIPT FROM WITHIN COMX ([M:F4])
  1345.  
  1346.           You can execute  a script from the main  menu or terminal-mode by
  1347.           pressing [M:F4]. You will be asked for the name of the script. If
  1348.           you  just press <Enter>, the last script  (if there was one) will
  1349.           be rerun along with any arguments which  you supplied previously.
  1350.           Pressing  <Esc>  will  abort  the  operation.  Arguments  can  be
  1351.           supplied  after the  script name  as discussed above  for command
  1352.           line  $Arguments (See Startup  Options; don't include  `--'). You
  1353.           should be aware  that if no arguments are supplied to the script,
  1354.           then all  $Variable values from  the previous invocation  will be
  1355.           retained. However, if one or more arguments are supplied, e.g.,
  1356.                send file1 file2
  1357.           then, in this  case, $1 and $2 in the script, `send.cex', will be
  1358.           replaced  with `file1' and  `file2', respectively, and  all other
  1359.           $Variables will be  cleared. (See script  sections. Also see  the
  1360.           description of the .nc script command which can be used to modify
  1361.           this  replacement  strategy.)  You  need  not  include  the  .CEX
  1362.           extension  in the  script  name.  Spaces can  be  included in  an
  1363.           argument by representing them with ^S.
  1364.  
  1365.           13. SENDING TERMINAL-MODE CHARACTERS TO THE PRINTER ([M:F5])
  1366.  
  1367.           Pressing  [M:F5] will  cause  any  subsequent  incoming  terminal
  1368.           characters  to be  echoed on  the printer  (# bits  determined by
  1369.           [M:Alt-T,E]). This key  also turns off echoing. This  kind of ON-
  1370.           OFF key action is termed `toggling'.
  1371.  
  1372.           14. SAVING TERMINAL-MODE CHARACTERS IN A FILE ([M:F6])
  1373.  
  1374.  
  1375.                                           20           Pressing [M:F6]  will toggle  a save of  all subsequent  incoming
  1376.           terminal  characters to a file.  (The default file is `comx.dwn'.
  1377.           The directory can  be specified in [M:F2,D].)  Characters will be
  1378.           appended to the contents  of this file if it already  exists. You
  1379.           can change the default file  name by hitting [M:F2,G]. The number
  1380.           of character  bits is determined  by [M:Alt-T,E]. Except  for the
  1381.           `Ansi' terminal emulation type,  emulation escape sequences  will
  1382.           not be saved.
  1383.  
  1384.           15. DOS ACCESS ([M:F7])
  1385.  
  1386.           You can access  DOS and do anything that you would normally do in
  1387.           DOS. From DOS,
  1388.                Type: exit <Enter> to return to COMX.
  1389.  
  1390.           16. ABORTING A FILE TRANSFER PROGRAM ON ANOTHER COMPUTER
  1391.                ([M:Alt-A])
  1392.  
  1393.           If you  have  started  Kermit,  X/Ymodem  or  Modem7  on  another
  1394.           computer  and decide  that you  don't want  to continue.  You can
  1395.           prematurely abort the program on that computer by hitting [M:Alt-
  1396.           A]. Select the appropriate protocol at the prompt.
  1397.  
  1398.           17. CHANGING SERIAL (COM) PORTS ([M:Alt-C] or [M:F2,A])
  1399.  
  1400.           If  you  have more  than one  serial port,  you can  move between
  1401.           successive  ports by hitting  [M:Alt-C]. Port settings  are those
  1402.           which you have  chosen for each port using  [M:Alt-U]. (Discussed
  1403.           above.) You can move to specific ports by hitting [M:F2,A].
  1404.  
  1405.           18. CHANGING PRINTER (LPT) PORTS ([M:F2,B])
  1406.  
  1407.           If you  have  more than  one parallel  port, you  can  move to  a
  1408.           specific port by hitting [M:F2,B].
  1409.  
  1410.           19. INVOKING A WORD PROCESSOR OR EDITOR FROM WITHIN COMX
  1411.                ([M:Alt-E])
  1412.  
  1413.           You can press [M:Alt-E] to invoke your favorite word processor or
  1414.           editor. In  order to do so,  however, its name  and any arguments
  1415.           must be  specified in [M:F2,F].  In entering a name  in [M:F2,F],
  1416.           you can also  include any arguments, along with  the special `-?'
  1417.           argument (any  number)  described for  $Arguments above  (Startup
  1418.           Options).  The  original  DOS  environment  (SET=VALUE)  is  also
  1419.           provided to the program. The  program also may be something other
  1420.           than an editor or word processor.
  1421.  
  1422.           20. HANGING UP THE PHONE ([M:Alt-H])
  1423.  
  1424.           On occasion, the termination of  a session on another computer or
  1425.           a network will leave your modem "on line". In these cases it will
  1426.           be  necessary to press [M:Alt-H]. (COMX will automatically hangup
  1427.           the phone if you exit COMX and the modem is still "on line".)  By
  1428.           default, COMX causes  the DTR line to drop and then rise. In some
  1429.           instances this  will not  work,  and you  will need  to define  a
  1430.  
  1431.                                           21           script  which, in turn, causes a hangup condition. If this is the
  1432.           case, you should  enter the name of  the script in  [M:F2,J]. For
  1433.           `broadband' networks, the script should be `NETBRK.CEX'; however,
  1434.           a   script  is  also  provided,  `HANGUP.CEX',  which  will  send
  1435.           appropriate Hayes  commands to your modem. (You  need not include
  1436.           the .CEX extension with its name.)  If a script name is given  in
  1437.           [M:F2,J], COMX will  automatically use this script  when it needs
  1438.           to do a hangup.
  1439.  
  1440.           21. LOGGING FILE TRANSFERS ([M:Alt-L])
  1441.  
  1442.           During uploads  and downloads,  all  received characters  (packet
  1443.           control characters included) are saved in a  file, `COMX.LOG', in
  1444.           the current  directory. This  is primarily  useful for  debugging
  1445.           protocols from other computers.
  1446.  
  1447.           22. TURNING THE MAIN MENU OFF AND ON ([M:Alt-M])
  1448.  
  1449.           You  may be used to hitting certain  keys in another program, and
  1450.           find  yourself accidentally  hitting these  keys  in COMX.  Well,
  1451.           there's a  solution. You can  toggle the main  menu off or  on by
  1452.           hitting [M:Alt-M]. This will deactivate all main menu keys BUT:
  1453.  
  1454.           [Alt-C], [Alt-D], [Alt-H], [Alt-M], [Alt-R], [Alt-X], [F1],  [F5]
  1455.           and [F10].
  1456.  
  1457.           23. PRINTING A FILE DURING ITS DOWNLOAD ([M:Alt-P])
  1458.  
  1459.           If you are downloading a text file and want to have it printed as
  1460.           well, press [M:Alt-P]. Please note:  if your printer is not ready
  1461.           to  receive characters, this  option will  be turned  off without
  1462.           notice. Normally characters  are sent to the printer  as they are
  1463.           received;  however, if  a  print spooler  program  is defined  in
  1464.           [M:F2,I]  then the  file will  be sent to  the spooler  after the
  1465.           download  has  completed.  The installation  default  is  the DOS
  1466.           spooler, PRINT. This option remains  in effect until it is turned
  1467.           off.
  1468.  
  1469.           24. DISPLAYING A FILE DURING ITS DOWNLOAD ([M:Alt-S])
  1470.  
  1471.           If you are downloading a text file  and want to have it displayed
  1472.           on the  screen as well,  press [M:Alt-S]. This option  remains in
  1473.           effect until it is turned off.
  1474.  
  1475.           25. REDIALING A PHONE NUMBER ([M:Alt-R])
  1476.  
  1477.           If you have dialed a number from the autodial directory or from a
  1478.           script,  you  can redial  the  number  by pressing  [M:Alt-R].  A
  1479.           previous script will not be rerun.
  1480.  
  1481.           26. LISTING THE FILES IN A DIRECTORY ([M:F2,M])
  1482.  
  1483.           You  can get  a  listing  of files  in  a  directory by  pressing
  1484.           [M:F2,M]. Just enter the name  of the directory at the prompt  or
  1485.           <Enter>   for  the  current  directory.  If  you  capitalize  the
  1486.  
  1487.                                           22           directory  name,  a   detailed  description  of  each   entry  is
  1488.           displayed, otherwise, you will see an abbreviated listing.
  1489.  
  1490.           27. VIEWING A TEXT FILE ([M:F2,N])
  1491.  
  1492.           The contents of a file can be viewed by pressing [M:F2,N].
  1493.  
  1494.           28. HOST-MODE ([M:F2,L])
  1495.  
  1496.           COMX  provides a  primative  host-mode. Upon  entering host-mode,
  1497.           COMX will optionally reset your modem, so that it will answer any
  1498.           incoming calls  from another  computer. Once  someone has  dialed
  1499.           into  your computer and  a connection  has been  established, the
  1500.           person at the  other end can then send commands  to your computer
  1501.           to perform specific operations on it. These commands are a subset
  1502.           of COMX script file commands. They are listed here for reference,
  1503.           but  are  described more  fully under  the sections  dealing with
  1504.           script files.
  1505.  
  1506.                Command Listing (A Subset of Script Commands)
  1507.  
  1508.                .do <prot> <t|b> [file]  - Download [file(s)] ONTO HOST.
  1509.                .ex            - Causes host to exit COMX.
  1510.                .he            - Help.
  1511.                .ls [dir]      - List directory [dir] entries on host.
  1512.                .ru <cmd>      - Run a program or DOS command <cmd> on host.
  1513.                .sf <file>     - Show (view) a <file> on host.
  1514.                .tc [yes|no]   - Toggle capture of terminal characters (from
  1515.                               remote site) to a file.
  1516.                .tf <file>     - Terminal  characters, after  `.tc yes',  go
  1517.                               into <file>.
  1518.                .te <type>     - Set terminal emulation <type> on host.
  1519.                .up <prot> <t|b> <files>  - Upload <file(s)> FROM HOST.
  1520.                .PW <user> <password>  - Enable use of the various commands.
  1521.  
  1522.                Other Available Commands:
  1523.  
  1524.                .as .fi, .gr, .kl, .km, .pe, .xo, .xt, .xz, .yx, .zx
  1525.  
  1526.                {See script file sections for a full description of usage.}
  1527.  
  1528.           All other text typed by the person at the other  end is echoed to
  1529.           your screen.  Similarly, anything  that you type  is sent  to the
  1530.           other computer.
  1531.                If the person on the other end types: .help
  1532.           then the information present in the file, `COMXHELP.TXT', is sent
  1533.           to the other side. (Your  computer will also beep several times.)
  1534.           You can edit this information as you wish.
  1535.                Two  script  files,   `HOSTON.CEX'  and  `HOSTOFF.CEX',  are
  1536.           provided. They are used to correctly set your modem and COMX  for
  1537.           host-mode. These files  may be edited, if you  like, to customize
  1538.           your  host-mode operations.  Their  names  may  also  be  changed
  1539.           ([M:F2,K]). You may want to study these files to see exactly what
  1540.           they do.
  1541.                The other end can break  the connection by either hanging up
  1542.  
  1543.                                           23           the phone or by  typing <Ctrl-Z>. Your modem will  be returned to
  1544.           the autoanswer mode  and COMX system parameters will  be reset in
  1545.           case they were changed by commands issued from the other side.
  1546.                If you hit  <Esc>, host-mode will be terminated.  If you hit
  1547.           <Ctrl-Z> while in host-mode, you will exit the host-mode  without
  1548.           hanging up the phone. You could  do the latter, if you wanted  to
  1549.           maintain a connection with the other computer after going back to
  1550.           your  main  menu. Hitting  <Ctrl-Z> will  change several  of your
  1551.           terminal emulation parameters including duplex type ([M:Alt-T,I])
  1552.           and  CR/LF translation  ([M:Alt-T,D]).  These parameters  will be
  1553.           reset to their original state  if you return to host-mode. Please
  1554.           note that if you do maintain a connection with the other machine,
  1555.           any characters which are typed by  the other side are not  echoed
  1556.           back to that side by COMX. The latter occurs only in host-mode.
  1557.                The serial port settings  used by the other computer  should
  1558.           agree  with  those  you  are  using;  COMX  will  not  adjust  to
  1559.           differences in baud rate.
  1560.                The .tc command could be used to save messages in a specific
  1561.           file for someone on the host computer to read at a later  time. A
  1562.           default .tf filename is set in `hoston.cex'.
  1563.  
  1564.           29. USING COMX UNDER DESQview (V. 2.2/2.3) AND WINDOWS 3.0
  1565.  
  1566.                COMX  can be used  under DESQview. The  appropriate settings
  1567.           for COMX in DESQview's program setup menu are:
  1568.  
  1569.                Program Name -                     mcomx.bat[3]
  1570.                Memory Size -                      130K  {See note below.}
  1571.                Writes to Screen -                 N
  1572.                Virtualize Text/Graphics -         Y  {Use  COMX's /P option
  1573.                                                   if `N'.}
  1574.                Displays Graphic Information -     N
  1575.                Can be Swapped Out of Memory -     N
  1576.                Requires Floppy Disk -             N
  1577.  
  1578.                And in the F1 Submenu:
  1579.  
  1580.                Text Pages -                       1
  1581.                Close on Exit to DOS -             Y
  1582.                Allow Close Window -               N
  1583.                Uses Math Coprocessor -            N
  1584.  
  1585.           You should adjust  the clock-ticks in the  DESQview setup program
  1586.           to  give  the background  process  more time  (e.g.,  3-fore-, 6-
  1587.           background). I would suggest that  you load COMX first before any
  1588.           other program.
  1589.                If you are  using a mouse, you should restrict  the COM port
  1590.                               
  1591.  
  1592.                [3] `MCOMX.BAT' (or whatever you want to call it) is the DOS
  1593.           batch file that  DESQview will use to start COMX. It must have in
  1594.           it the following lines:
  1595.  
  1596.                dvansi  {DESQview needs its own version of `ansi.sys'}
  1597.                comx
  1598.  
  1599.                                           24           to the one on which you will be communicating. To do so, Enter:
  1600.                -o<COM port #> ( e.g. -o1 ) in the parameter field.
  1601.                You can run multiple versions  of COMX in different DESQview
  1602.           windows. To  do so, you need to set up a different batch file for
  1603.           each window and use COMX's /O option. For example,
  1604.  
  1605.                MCOMX1.BAT -
  1606.  
  1607.                dvansi
  1608.                comx /O1  {Only COM1 will be used.}
  1609.  
  1610.                MCOMX2.BAT -
  1611.  
  1612.                dvansi
  1613.                comx /O2  {Only COM2 will be used.}
  1614.  
  1615.                Under Windows  3.0 you  can optimize  COMX's performance  by
  1616.           creating  a .PIF  file.  Change the  following  items from  their
  1617.           defaults:
  1618.  
  1619.                Optional Parameters:
  1620.                     If you are  using a mouse, you should  restrict the COM
  1621.                     port to the one on  which you will be communicating. To
  1622.                     do  so, Enter:  -o<COM port  #> (  e.g. -o1 )  for this
  1623.                     option. Failure to specify this may result in damage to
  1624.                     Windows groups.
  1625.  
  1626.                For 386 Enhanced Mode Usage:
  1627.  
  1628.                KB Desired: 130  {See note below.}
  1629.                Display Usage: Windowed
  1630.                Execution: Background
  1631.  
  1632.           Please  Note:  To  be  able  to  1)  access  DOS,  2)  invoke  an
  1633.           editor/word  processor,  or 3)  spool  a downloaded  file  to the
  1634.           printer using a  spooler program,  you will need  to increase the
  1635.           amount of  memory which is  available to COMX. I  would recommend
  1636.           starting with 200 K.
  1637.  
  1638.  
  1639.           30. CREATING A 132 COLUMN DISPLAY / MULTI-COM PORT DRIVER
  1640.  
  1641.           The  utility program, CXDRIVER (Copyright (C) 1990-1991 Samuel A.
  1642.           Sholl) can  be used to  create a driver, `COMX.DRV',  (created in
  1643.           your  bootup directory) which  is loaded automatically  when COMX
  1644.           starts. This program  will work on 8086-80486  machines. CXDRIVER
  1645.           should be  used on  the disk  drive on  which you  have installed
  1646.           COMX. There are two cases in  which you will need to create  this
  1647.           driver: 1) If your VGA card uses an extended DOS INT 10H function
  1648.           (greater than 0x0f) to get and set  the video mode for 132 column
  1649.           display and 2)  if you have more  than two COM ports (up  to 15).
  1650.           Usually, you  will need  additional hardware  to to  support more
  1651.           than  two  COM ports.  Multiport boards  from Digiboard  Inc. are
  1652.           recommended.
  1653.  
  1654.  
  1655.                                           25           Summary of Usage
  1656.  
  1657.                CXDRIVER </I<FILE>> [/D<VGA>] [/S] [/T] [/W]
  1658.  
  1659.                Where:
  1660.  
  1661.                     /I<FILE>  =   <File>    containing   driver    creation
  1662.                               instructions.
  1663.                     /D<VGA>   = Default  INT 10H  values should  be used  -
  1664.                               (<VGA>=n  for  normal/standard;  <VGA>=7  for
  1665.                               Video 7.)
  1666.                     /S        = Execute silently (no messages).
  1667.                     /T        = Test only; don't create driver.
  1668.                     /W        =   Ignore   warnings  and   create   driver.
  1669.                               Normally, the driver is not created  if there
  1670.                               are warnings or errors.
  1671.  
  1672.                You  will need  to  create a  text file  (<File>) containing
  1673.                instructions   for  the   creation  of  the   driver.  These
  1674.                instructions will be  interpreted by CXDRIVER and  the file,
  1675.                `\comx.drv'  will  be created  if  there  are no  errors  or
  1676.                warnings. Instructions which  should be placed in  this file
  1677.                are described below.
  1678.  
  1679.           DRIVER CREATION INSTRUCTIONS IN <FILE>:
  1680.  
  1681.                All specified values should be in hexidecimal. See the file,
  1682.                `cxdriver.txt', for an example.
  1683.  
  1684.                FOR 132 COLUMN DISPLAY (OPTIONAL, IGNORED IF /D USED):
  1685.  
  1686.                COM_Port#:key_word=value (Hexidecimal)
  1687.  
  1688.                #:a8250   = I/O address (base) of  an 8250 type UART for the
  1689.                          port. (COM1=0x3F8, COM2=0x2F8)
  1690.                #:intn    = Interrupt number for the port. (COM1=C, COM2=B)
  1691.                #:a8259   =  I/O  address  (base)  of  the  8259A  interrupt
  1692.                          controler for the port. (COM1=COM2=0x20)
  1693.                #:irqn    = Interrupt request number  for the port. (COM1=4,
  1694.                          COM2=3)
  1695.                #:break   =  Duration of the  break signal. (Multiple  of 55
  1696.                          ms) (Default=2)
  1697.                #:modem   =  0 or 1. This determines whether output requires
  1698.                          modem status signals to be asserted. (0=NO, 1=YES)
  1699.                          (Default=0)
  1700.                #:otime   =  Value.  Determines  timeout period  for  polled
  1701.                          output. (Multiple of 55 ms) (Default=0)
  1702.                #:itime   = Value.  Determines  timeout  period  for  polled
  1703.                          input. (Multiple of 55 ms) (Default=0)
  1704.                #:shirq   =  Address.  For  devices  which  share  a  single
  1705.                          interrupt request line, this is the address of the
  1706.                          status  port which must be read to determine which
  1707.                          of the UARTs requested input. (Default=0)
  1708.                #:shmask  =  Bit Mask. Bit mask which  will be compared with
  1709.                          the  value read from  the status port  on a shared
  1710.  
  1711.                                           26                          interrupt  multi-port  board.   The  value  should
  1712.                          indicate  which  port   requested  the  interrupt.
  1713.                          (Default=0)
  1714.  
  1715.                FOR MULTI-PORT OPERATION (OPTIONAL):
  1716.  
  1717.                key_word=value (Hexidecimal) or Register
  1718.  
  1719.                For setting up registers for setting a NEW video MODE:
  1720.  
  1721.                s_moder   = al, ah, bl, bh, cl, ch, dl or dh
  1722.                          {Register containing video MODE value on  function
  1723.                          entry.}
  1724.                s_al      = Initial value in register al.
  1725.                s_ah      = Initial value in register ah.
  1726.                s_bl      = Initial value in register bl.
  1727.                s_bh      = Initial value in register bh.
  1728.                s_cl      = Initial value in register cl.
  1729.                s_ch      = Initial value in register ch.
  1730.                s_dl      = Initial value in register dl.
  1731.                s_dh      = Initial value in register dh.
  1732.  
  1733.  
  1734.                For setting  up registers for getting the CURRENT video MODE
  1735.                & # COLUMNS:
  1736.  
  1737.                g_moder   = al, ah, bl, bh, cl, ch, dl or dh
  1738.                          {Register containing video  MODE value on function
  1739.                          exit.}
  1740.                g_colr    = al, ah, bl, bh, cl, ch, dl or dh
  1741.                          {Register  containing  COLUMN# value  on  function
  1742.                          exit.}
  1743.  
  1744.                g_al      = Initial value in register al.
  1745.                g_ah      = Initial value in register ah.
  1746.                g_bl      = Initial value in register bl.
  1747.                g_bh      = Initial value in register bh.
  1748.                g_cl      = Initial value in register cl.
  1749.                g_ch      = Initial value in register ch.
  1750.                g_dl      = Initial value in register dl.
  1751.                g_dh      = Initial value in register dh.
  1752.  
  1753.                If not  set, defaults are  either `al' or zero  depending on
  1754.                the variable.
  1755.  
  1756.  
  1757.           31. SCRIPT FILES
  1758.  
  1759.           31.1 General Information
  1760.  
  1761.           This is one  of the most powerful features of COMX. A script file
  1762.           is a text file, which you create using your word processor. (Save
  1763.           as  a DOS  text file.)  The script  file contains  commands which
  1764.           cause  COMX  to do  something.  Script  files  must have  a  .CEX
  1765.           extension, although you don't have to specify this extension when
  1766.  
  1767.                                           27           they are invoked.
  1768.                Generally,  when a script program is running, any characters
  1769.           which you  type on the keyboard  are passed through to  the other
  1770.           side.  This  is useful,  e.g.,  if you  don't want  to  include a
  1771.           password in your script.
  1772.                There  are three ways  to invoke a  script: 1) from  the DOS
  1773.           command line (see Page 9), 2) by hitting [M:F4] (see Page 20), or
  1774.           3)  from your  autodial directory  (see  Page 14).  All of  these
  1775.           methods have been described above.
  1776.                COMX script  files  should be  located  either in  the  root
  1777.           directory of your  bootup drive or in the  directory specified in
  1778.           [M:F2,C].
  1779.                The  COMX script  language  is  described by  a  set of  DOT
  1780.           commands, which  may be followed by required  (<...>) or optional
  1781.           ([...]) argument(s), e.g.,
  1782.  
  1783.                .ds hello there^M^J
  1784.  
  1785.           The number of spaces or tabs before the command is not important.
  1786.           Any other  line of text  is ignored  by the script  processor. In
  1787.           addition, I usually use `#' as  the first character of a line  to
  1788.           designate  a comment.  (This is  processed  more quickly.)  Blank
  1789.           lines are also permissible.
  1790.  
  1791.           Only the first TWO characters after the DOT are important, e.g.,
  1792.  
  1793.                `.te vt100'  would be the same as  `.terminal vt100'
  1794.  
  1795.           The CASE of the characters in the command IS meaningful. e.g.,
  1796.  
  1797.                `.abort' is not the same as `.ABORT'.
  1798.  
  1799.           A  number  of  script  files  have  been  provided  in  the  COMX
  1800.           distribution package, and they should  be studied for examples of
  1801.           command usage.
  1802.  
  1803.           31.2 $Variables
  1804.  
  1805.           $Variables  can be  imbedded within  script  commands. There  are
  1806.           several types of $Variables:
  1807.  
  1808.                $1 ... $30     {Script invocation arguments 1-30}
  1809.                $0        {From .gi command input}
  1810.                $n        {The number of script invocation arguments}
  1811.                $f        {Name  of file  just  up/downloaded including  the
  1812.                          directory}
  1813.                $F        {Name of file just up/downloaded not including the
  1814.                          directory}
  1815.                $$        {$ Itself}
  1816.  
  1817.           These variables  and how they are  used can be  best described by
  1818.           the following examples:
  1819.  
  1820.              .ds Script Argument-1: $1, Argument-2: $2^M^J
  1821.                     -  $1 and  $2 are  replaced with  the first  and second
  1822.  
  1823.                                           28                     arguments, respectively, on the script invocation line.
  1824.  
  1825.              .ds Number of Script Arguments: $n^M^J
  1826.                     - $n is replaced with the actual number of arguments on
  1827.                     the script invocation line.
  1828.  
  1829.              .ds Input to the .gi Command was: $0^M^J
  1830.                     - $0 is replaced with input to a preceding .gi command.
  1831.  
  1832.              .ds The File Just Sent was: $f^M^J
  1833.                     -  $f   is  replaced   with  the   name  of  the   last
  1834.                     up/downloaded file.
  1835.  
  1836.              .ds The Dollar Sign Itself Can be Displayed, e.g. $$100.0^M^J
  1837.  
  1838.           For more  discussion on the  nature of these variables  and their
  1839.           initialization,  see the above  information on the  invocation of
  1840.           scripts.
  1841.  
  1842.           31.3 Jump Labels
  1843.  
  1844.           You  can  jump to  specific  labels in  the  script file  using a
  1845.           command such as: .op ju 3
  1846.  
  1847.           These labels consist of a DOT plus two digits, e.g.,
  1848.  
  1849.                .01   {Labels can range from .01 to .30}
  1850.  
  1851.           To  use these  labels in  a jump  command,  you specify  only the
  1852.           integer part as the jump argument, e.g.,
  1853.  
  1854.                .09
  1855.                # something here
  1856.                .op ju 9  {Don't include a leading `0'.}
  1857.  
  1858.           Labels are  local to a  given script and  cannot be used  to jump
  1859.           between merged scripts.
  1860.  
  1861.           31.4 Toggling Activity
  1862.  
  1863.           Some script commands simply toggle a COMX environmental parameter
  1864.           between `YES' and `NO'.  These commands are usually descibed  as,
  1865.           e.g., .command [YES|NO],  where `|' means OR.  The argument `YES'
  1866.           or `NO' is optional. An example would be:  .b7 YES
  1867.           One could also use `ON' or `OFF', or `1' or `0' in place of `YES'
  1868.           or `NO'. (Case is not  important.) Omitting the argument would be
  1869.           the same as specifying `YES'.
  1870.  
  1871.           31.5 Error Return Values from Commands (ERRVAL)
  1872.  
  1873.           Specific commands  may return  a TRUE  or  FALSE ERROR  condition
  1874.           which can be tested for by using an .opcode command (.op  je; .op
  1875.           jn).  If a  command  returns  an error  value,  (ERRVAL) will  be
  1876.           indicated after the command or described under the command.
  1877.  
  1878.  
  1879.                                           29           31.6 Basic Commands
  1880.  
  1881.           If a command has a menu-equivalent, it is indicated at the end of
  1882.           the description.
  1883.  
  1884.           .:= $$<n> <string>  Assign <string> to the $Variable <n>.
  1885.           .abort         Abort the current script. If the current script is
  1886.                          a  merged  script,  you will  be  returned  to the
  1887.                          previous script. (See .me). (ERRVAL=TRUE)
  1888.           .ABORT         Abort all scripts which are currently running. You
  1889.                          will be returned to the main menu.
  1890.           .AE [YES|NO]   Abort on error. (Default=YES). Normally, COMX will
  1891.                          abort  a script if  an ERRVAL of  TRUE is returned
  1892.                          from a specific script command. You should set .AE
  1893.                          to NO  if you wish  to do complex  branching using
  1894.                          `.op je' or `.op jn'. (See below.) This command is
  1895.                          local to  the script  in which it  is used.  If an
  1896.                          unconditional  jump   command  (e.g.,   `.op  ju')
  1897.                          follows immediately after a command with an ERRVAL
  1898.                          designation,  the  ERRVAL  from  that  command  is
  1899.                          ignored regardless of how .AE is set.
  1900.           .as <parameters>
  1901.                          Specify    ascii-send    (upload)    <parameters>.
  1902.                          <Parameters> should  be a string  with the format:
  1903.                          <block_time>,<l   or   p>,<block_size>,<char_time>
  1904.                          (e.g. 1,p,128,2  [no spaces]).  Where <block_time>
  1905.                          is  the  delay  time  between  packets/lines  (0-5
  1906.                          secs.); <l,p> designates that either a line (l) or
  1907.                          packet (p) is sent at a time, <block_size> (1-1000
  1908.                          bytes)  specifies the  size of  a  packet (if  `p'
  1909.                          chosen) and <char_time> is the delay time  between
  1910.                          characters  (0-100  multiple  of   55  ms).  These
  1911.                          parameters  can be saved by pressing [M:F3]. There
  1912.                          is  no  way  to  enter  them  from  a  menu.  (See
  1913.                          `tools.cex'.)
  1914.           .b7 [YES|NO]   7-Bit  mask for X/Ymodem file transfers. YES = use
  1915.                          only   7-bits,   NO   =   8-bits   (normal   way).
  1916.                          ([M:F2,O,J])
  1917.           .cd            Carrier detect.  If a carrier signal  is detected,
  1918.                          ERRVAL=FALSE, else ERRVAL=TRUE.
  1919.           .com [n]       COM  port  switch.   Move  to  next  serial   port
  1920.                          available  if no  [n] is  given, else move  to the
  1921.                          specific [n] COM port. ([M:F2,A)
  1922.           .CO <str>      Modem CONNECT string <str>. ([M:F2,H])
  1923.           .cs            Clear  current video screen and send cursor to the
  1924.                          home position.
  1925.           .cv <n>        Clear $Variable, $<n>, where n  = 1-30. If n = -1,
  1926.                          all $Variables will  be cleared. (Example: .cv  5;
  1927.                          .cv -1).
  1928.           .db [YES|NO]   Destructive  backspace   in  terminal   emulation.
  1929.                          ([M:Alt-T,F])
  1930.           .dial <str>    Dial  the phone number  <str>. There should  be no
  1931.                          spaces in <str>.  (Example: .di 1,8001119999).  If
  1932.                          you do  not include a  Hayes prefix (e.g.  ATP) in
  1933.                          <str>,  then  `ATD'  is  prepended to  <str>.  The
  1934.  
  1935.                                           30                          script processor waits for a carrier detect signal
  1936.                          before  continuing  unless  a  `~'  is  the  first
  1937.                          character  of <str>.  (The  `~' is  ignored.) This
  1938.                          command is ignored  if the script is  invoked from
  1939.                          the  autodial directory.  If a connection  is made
  1940.                          with  the   other  computer,   ERRVAL=FALSE,  else
  1941.                          ERRVAL=TRUE. (See .gb command.)
  1942.           .down <protocol> <t or b> [file]
  1943.                          Download   a   [file]  using   <protocol>,   where
  1944.                          <protocol> = k,x,xc,y,yc,m7,yg,ya or a; <t or b> =
  1945.                          text or  binary file  (you can  use `i' for  image
  1946.                          instead of `b'); [file] = name of received file if
  1947.                          this is a  nonbatch protocol.  (See .up)  (ERRVAL)
  1948.                          ([M:PgDn])
  1949.           .ds <str>      Display  string   <str>  on  your   terminal.  The
  1950.                          formatting  of <str>  follows  the  same rules  as
  1951.                          described under  Section 10.3,  "Control Character
  1952.                          Representation".  In  addition,  you  may  include
  1953.                          trailing spaces in <str> by representing them with
  1954.                          `^S' and beginning spaces by preceding them with a
  1955.                          `"'. (Normally, trailing and beginning spaces  are
  1956.                          trimmed.)  Note: you  must specifically  include a
  1957.                          CR/LF EOL designation in <str>. (Example: .ds " --
  1958.                          ^GHello There^M^J).
  1959.           .du [YES|NO]   Duplex  -  half. YES  =  half  duplex, NO  =  full
  1960.                          duplex. ([M:Alt-T,I])
  1961.           .editor <name> The  <name> of  the editor  or  word processor  to
  1962.                          invoke after hitting [M:Alt-E]. ([M:F2,F])
  1963.           .escape        Test   to   determine  whether   <Esc>   was  hit.
  1964.                          ERRVAL=TRUE if <Esc>, else ERRVAL=FALSE.
  1965.           .exit          Exit COMX.
  1966.           .file <path>   Test   for  the  existence  of  a  given  file  or
  1967.                          directory <path>. (ERRVAL)
  1968.           .flushinput    Flush any characters from the  current serial port
  1969.                          input buffer.
  1970.           .fo [YES|NO]   Force binary/text  mode  query  on  file  uploads.
  1971.                          ([M:F2,O,H])
  1972.           .gb [n]        Get the modem's "CONNECT" baud rate and reset COMX
  1973.                          to it. (See discussion under Section 8.2.5.) [n] =
  1974.                          Number  of  seconds  in  which  to  look  for  the
  1975.                          "CONNECT"  baud  rate  after  dialing the  number.
  1976.                          (Default = 3 secs.) The .gb command MUST be placed
  1977.                          BEFORE the .dial command. This command  is ignored
  1978.                          if  the  script  is   invoked  from  the  autodial
  1979.                          directory, although if you've defined a  "CONNECT"
  1980.                          string in [M:F2], switching is done as if .gb were
  1981.                          in your script.
  1982.           .gi [prompt]   Get input  from keyboard  following [prompt].  The
  1983.                          input can  then replace the special $Variable, $0.
  1984.                          [Prompt]  can be formatted  as described under the
  1985.                          command, .ds.
  1986.           .gr [YES|NO]   Graphics character display  capability in terminal
  1987.                          emulation. ([M:Alt-T,E])
  1988.           .hangup        Hangup phone. ([M:Alt-H])
  1989.           .help          Help  requested  from a  remote computer  while in
  1990.  
  1991.                                           31                          host-mode.  This  command  can  also  be  used  to
  1992.                          display the contents of  the file, `comxhelp.txt',
  1993.                          which should be  located in the root  directory of
  1994.                          your bootup drive.
  1995.           .hostmode      Activate host-mode. ([M:F2,O,L])
  1996.           .ka [YES|NO]   Keep aborted-download files. ([M:F2,O,A])
  1997.           .kl [YES|NO]   Kermit - large block. ([M:F2,O,P])
  1998.           .km <n> <str>  Key-macro.  Assign   <str>  to   key-macro  buffer
  1999.                          ([M:F1])  entry <n>.  The formatting  of <str>  is
  2000.                          described  under  the  section dealing  with  key-
  2001.                          macros. (Example: `.km 16 mail^J' assigns `mail^J'
  2002.                          to [M:F1,1,F6]).
  2003.           .ls [dir]      List files  in the  directory [dir].  If [dir]  is
  2004.                          capitalized, you will  get a detailed  description
  2005.                          of  each file in the directory. (Default = current
  2006.                          directory.) ([M:F2,M])
  2007.           .main [YES|NO] Main menu display. (M:Alt-M)
  2008.           .mi <c1> <c2>  Map terminal input character <c1> (ascii value) to
  2009.                          character  <c2>. For  example, .mi  13  10    will
  2010.                          change  all  incoming carriage  returns  (13) into
  2011.                          line feeds (10).  This will not map  characters in
  2012.                          file  transfers. All characters  will be  reset to
  2013.                          their  original ascii  values when  a terminal  is
  2014.                          reset using the .term or .restore command. Setting
  2015.                          <c1> to -1 will also reset all character values.
  2016.           .mo <c1> <c2)  Map terminal  output character  <c1> to  character
  2017.                          <c2>.  (See  the  description  of.mi  which   also
  2018.                          applies to .mo). This  does not affect  characters
  2019.                          sent using the .tr command or in file transfers.
  2020.           .merge <script file> [list of $Arguments]
  2021.                          Merge another script file into the current one and
  2022.                          execute.   If   the  script   runs   successfully,
  2023.                          ERRVAL=FALSE, otherwise,  ERRVAL is  determined by
  2024.                          the  ERRVAL's returned  by individual  commands in
  2025.                          the  merged script. It  can also be  influenced by
  2026.                          such  commands  as,  .abort, .AE  and  .RE  in the
  2027.                          merged script.  The $Arguments fill  $Variables in
  2028.                          the merged  script as  described above.  $Variable
  2029.                          values will  remain in  effect even  after exiting
  2030.                          the script.  Merges  can be  up to  5 levels  deep
  2031.                          including the initial script.
  2032.                          (Example: .me sendf $1 file2.txt)
  2033.           .mn <n>        Minimum  number  <n>  of command  line  $Arguments
  2034.                          needed  to  execute  the  script  correctly.  This
  2035.                          command should be placed at the top of  the script
  2036.                          file. (ERRVAL=TRUE if the requirement is not met.)
  2037.           .nc [YES|NO]   No clearing of remaining $Variables if one or more
  2038.                          $Arguments are  included on the  script invocation
  2039.                          line. (NO=Default).
  2040.           .opcode <code> Perform   a   specific  operation   <code>.   (See
  2041.                          following sections.)
  2042.           .PARSE <str>   Parse the string <str> into separate arguments and
  2043.                          place them  on the  COMX stack.  (See sections  on
  2044.                          stack commands.) The arguments can be separated by
  2045.                          `,', ` ' or `;' Literal separators can be preceded
  2046.  
  2047.                                           32                          by a backslash,  e.g., `\;'. The last  argument is
  2048.                          on the top of the stack. Spaces within an argument
  2049.                          can  be   represented  by  `^S'.   The  number  of
  2050.                          arguments is returned in $n.
  2051.           .pause <n>     Pause  for  <n> seconds  before  continuing script
  2052.                          processing. (ERRVAL=TRUE if <Esc> hit.)
  2053.           .pe [YES|NO]   Print downloading files. ([M:Alt-P])
  2054.           .PE [YES|NO]   Password enable. If `YES', then in  host-mode, the
  2055.                          remote user  must issue the .PW  <user> <password>
  2056.                          command  before he/she is allowed to use the other
  2057.                          host-mode commands. This command could be executed
  2058.                          from the file, `hoston.cex'.
  2059.           .PW <user> <pwrd>
  2060.                          If .PE has been enabled, and COMX is in host-mode,
  2061.                          then  the  remote  user  must  issue this  command
  2062.                          before  gaining  access  to  the  other  host-mode
  2063.                          commands.  A  file  (`comxpwd.txt'   in  the  root
  2064.                          directory of your bootup drive) must be set  up to
  2065.                          contain  the user name <user> and password <pwrd>.
  2066.                          A  sample  file is  provided  in  the distribution
  2067.                          package.
  2068.           .pg <0 or 1>   Select   page  0  or  1  for  video  display.  The
  2069.                          terminal-mode page  is 0; scripts are  usually but
  2070.                          not always run on page 1.
  2071.           .pi <dir>      Path  in. Default  directory <dir>  for downloaded
  2072.                          files. (See .po)  (ERRVAL=TRUE if no  such <dir>.)
  2073.                          ([M:F2,D])
  2074.           .po <dir>      Path  out.  Default  directory <dir>  of  files to
  2075.                          upload. (ERRVAL=TRUE if no such <dir>.) ([M:F2,E])
  2076.           .printer [n]   Printer port  switch. Move  to the  next LPT  port
  2077.                          available  if no [n]  is given,  else move  to the
  2078.                          specific [n] LPT port. ([M:F2,B])
  2079.           .restore       Restore  all COMX  system  parameter values.  (See
  2080.                          .ss)
  2081.           .RETURN <n>    Return from a  script with the  value <n>. If  the
  2082.                          value is not zero, ERRVAL after the .merge command
  2083.                          which invoked  the script  is set  to FALSE,  else
  2084.                          ERRVAL=TRUE.
  2085.           .run <prompt> <command>
  2086.                          Run command. This version of .ru is the usual form
  2087.                          of the command. The <command> is run on the  other
  2088.                          computer.  The  script  processor  waits  for  the
  2089.                          <prompt> from the other computer before continuing
  2090.                          script execution.  The exception  to this  is when
  2091.                          you specify that the prompt is `0' (zero). In this
  2092.                          case, script  processing continues  without delay.
  2093.                          The processor will  wait for up to 500 minutes for
  2094.                          <prompt>. (ERRVAL=TRUE if a timeout occurred while
  2095.                          waiting for the <prompt>.)
  2096.           .run <command> Run command. The second version of the run command
  2097.                          is  relevant when  COMX is  in  the host-mode  and
  2098.                          receives this command from the other computer.  In
  2099.                          this  case,  the  <command> is  a  DOS  command or
  2100.                          program which  will be  run on  the host  machine.
  2101.                          (ERRVAL=TRUE  if DOS was  not able to  execute the
  2102.  
  2103.                                           33                          <command>.)
  2104.           .rl <command>  Run  local command. The <command> is a DOS command
  2105.                          or another program. (ERRVAL)
  2106.           .rt [YES|NO]   Relax timeouts for downloads. ([M:F2,O,F])
  2107.           .sa <n1> <n2> <n3> <n4> <n5> <n6> <n7>
  2108.                          Set all. Various COMX file transfer parameters can
  2109.                          be set. These include:
  2110.  
  2111.                               <n1> = Kermit: 8-bit character prefix.
  2112.                               <n2> = Kermit: control character prefix.
  2113.                               <n3> = Kermit: end of packet character.
  2114.                               <n4> = Kermit: packet initiation character.
  2115.                               <n5> = Kermit: number of checksum bytes.
  2116.                               <n6>  =  Maximum  transfer  timeout  interval
  2117.                                         (secs).
  2118.                               <n7> = Maximum number of packet retries.
  2119.  
  2120.                          Values <n1> ...  <n4> are ascii. You  must include
  2121.                          all parameter values.
  2122.                          (For default settings: .sa 38 35 13 1 3 10 10).
  2123.           .sb            Send break signal. ([M:Alt-B])
  2124.           .sc [YES|NO]   Screen display of downloading file. ([M:Alt-S])
  2125.           .sd <script>   Script  <script> to  use for  hangups/disconnects.
  2126.                          ([M:F2,J])
  2127.           .SD <dir>      Directory   <dir>    containing   script    files.
  2128.                          ([M:F2,C])
  2129.           .sf <file>     Show file <file> on screen. ([M:F2,N])
  2130.           .show [YES|NO] Show serial port incoming characters during script
  2131.                          execution. (YES=Default).
  2132.           .sn [YES|NO]   Set  newline  (LF)  generation  to  automatic   on
  2133.                          receipt of  CR (or LF)  in terminal-mode. ([M:Alt-
  2134.                          T,D])
  2135.           .ss            Save  all  COMX  system  parameter  values  to  be
  2136.                          restored by the .restore command.
  2137.           .sw [YES|NO]   Screen wrap in terminal-mode. ([M:Alt-T,C])
  2138.           .sy <val> <str>
  2139.                          Synchronize. This  is like .wa (see  below) except
  2140.                          that  if the expected string <str> is not received
  2141.                          over  the serial  port within  5  seconds after  a
  2142.                          carrier signal is  detected, a <val>  (ascii value
  2143.                          of a character) is sent and the wait begins  again
  2144.                          for 40  seconds. The <val> is normally 13 (CR) but
  2145.                          may be  any other  character (e.g.,  space =  32).
  2146.                          (See .wait) (ERRVAL)
  2147.           .terminal <terminal type abbreviation>
  2148.                          Set the terminal emulation  type. (See Section 7.1
  2149.                          for abbreviations.)  (Example: .te  adm5) ([M:Alt-
  2150.                          T,A])
  2151.           .tc [YES|NO]   Data capture of terminal  characters to the  file,
  2152.                          `comx.dwn'  (or   whatever  the   name  given   in
  2153.                          [M:F2,G].) This command toggles  the capture ON or
  2154.                          OFF. ([M:F6])
  2155.           .tf <file>     Data  capture  of  terminal   characters  to  file
  2156.                          <file>. (Default=`comx.dwn'). (See .tc) ([M:F2,G])
  2157.           .tr <str>      Transmit the string  <str> over  the serial  port.
  2158.  
  2159.                                           34                          The  formatting of <str> follows the same rules as
  2160.                          described under  Section 10.3,  "Control Character
  2161.                          Representation". See  the description  of .ds  for
  2162.                          additional   rules,   specifically   regarding   a
  2163.                          beginning `"' and ending spaces.
  2164.           .uart <str>    Uart-serial  port  values  set  to <str>  for  the
  2165.                          current  COM port.  <Str> should  be  in a  format
  2166.                          like, e.g., 1200e17   where in this case,
  2167.                               1200 = Baud rate.
  2168.                               e    =   Parity   (even,    1-letter;   also:
  2169.                                    o,n,m,s).
  2170.                               1    = Number of stop bits (also: 2).
  2171.                               7    = Word length (also: 5,6,8).
  2172.                          ([M:Alt-U])
  2173.           .upload <protocol> <t or b> [list of files] ([M:PgUp])
  2174.                          Upload  a file(s). (See  .do for a  description of
  2175.                          the format of this command.) The last argument may
  2176.                          include one or more file names. If no file name is
  2177.                          given,  you will be  asked for the  name(s) of the
  2178.                          files.  This applies only if  you are not in host-
  2179.                          mode. For  the latter, file name(s) are manditory.
  2180.                          (ERRVAL)
  2181.           .wait <str>    Wait for  a string <str>  to be sent by  the other
  2182.                          computer. The formatting of <str> follows the same
  2183.                          rules  as described  under Section  10.3, "Control
  2184.                          Character Representation". See  the description of
  2185.                          .ds for additional rules, specifically regarding a
  2186.                          beginning  `"'  and   ending  spaces.  The  script
  2187.                          processor will wait up to 40 seconds. (See .WT and
  2188.                          .sy) (ERRVAL)
  2189.           .wide <str>    Allow  132 column display. <Str> is typically in a
  2190.                          format like,  55 1
  2191.                          (See Section 7.3, Option [H]) ([M:Alt-T,H])
  2192.           .WT <n> <str>  Wait for  a maximum  of <n>  seconds for  a string
  2193.                          <str> to be sent  by the other computer.  (See the
  2194.                          .wait command for information on the formatting of
  2195.                          <str>.) (ERRVAL)
  2196.           .xon-xoff [YES|NO]
  2197.                          Use underlying Xon/Xoff protocol on file  uploads.
  2198.                          ([M:F2,O,I])
  2199.           .xt [YES|NO]   Use  Xon/Xoff  protocol with  terminal  emulation.
  2200.                          ([M:Alt-T,G])
  2201.           .yz [YES|NO]   End-of-line (EOL)  LF  to CR  translation for  all
  2202.                          text file uploads. (NO=Default). ([M:F2,O,D])
  2203.           .xz [YES|NO]   EOL Specification for Kermit & X/Ymodem text  file
  2204.                          uploads   is  LF   (YES),  else   EOL  is   CR/LF.
  2205.                          (NO=Default). ([M:F2,O,B])
  2206.           .zx [YES|NO]   EOL Specification for  Ascii text file uploads  is
  2207.                          CR/LF   (YES),  else   EOL  is   LF  (NO=Default).
  2208.                          ([M:F2,O,C])
  2209.  
  2210.           31.7 Stack Commands (.op __)
  2211.  
  2212.           31.7.1 General Information
  2213.  
  2214.  
  2215.                                           35           COMX has  its own script  stack. (Actually there are  two stacks,
  2216.           but  we'll get  to that  later.) Script  commands can be  used to
  2217.           manipulate  the contents  of this  stack. You  can also  save the
  2218.           contents of  $Variables  on the  stack.  First, however,  let  me
  2219.           summarize  the notation  which I  will be  using to  describe the
  2220.           stack commands. I'll represent the COMX stack by the following:
  2221.  
  2222.                        Stack -
  2223.           (Before operation)   (After operation)
  2224.  
  2225.                n3 n2 n1  -->  n3 n2 n1  {n1  ...  n3  are   values  on  the
  2226.                                         stack.}
  2227.  
  2228.           In this case, the value, n1, is on the top of the  stack, and the
  2229.           value,  n3, is  on the bottom  of the  stack. In addition  to the
  2230.           changes to  the stack which  result from the  various operations,
  2231.           there are several COMX system  variables whose values also can be
  2232.           influenced by stack operations:
  2233.  
  2234.                ERRVAL    - Descibed above.
  2235.                FLAG      -  Holds a TRUE/FALSE value resulting from a stack
  2236.                          test operation.
  2237.                HFLAG     -  The  same  as  for  FLAG,  but  for  operations
  2238.                          performed on the hardware stack (more later).
  2239.  
  2240.           These  variables are  local to  a  given script.  In the  command
  2241.           descriptions which follow,  I will indicate whether  a particular
  2242.           variable is affected by the results of the described operation.
  2243.                The values on the stack can be  of two types - integer (e.g.
  2244.           12) and string (e.g. "12 is twelve"). Type consistency is checked
  2245.           before the stack operation is performed.
  2246.                All stack operations are preceded by: .opcode
  2247.           followed by the name of the specific operation; for example,
  2248.                .op plus
  2249.           If the first character of the operation is capitalized (e.g., .op
  2250.           Plus  [or .op  PLUS]),  then  the operation  will  relate to  the
  2251.           auxiliary COMX stack which we will call the `hardware' stack (for
  2252.           lack of  a  better  name). The  following  description  of  stack
  2253.           operations also can be applied to this auxiliary stack.
  2254.                Examples of the various stack operations can be found in the
  2255.           script  files,  `STACK.CEX' and  `SERVER.CEX'.  These  files also
  2256.           demonstrate  the use  of stack  commands to provide  program flow
  2257.           control. Subroutine calls can be simulated by merges (.me).
  2258.  
  2259.           31.7.2 Math Operations on Stack Values
  2260.  
  2261.           The following math  operations are permitted. They all require at
  2262.           least  two  integer  values  on the  stack.  These  commands  are
  2263.           particularly useful in providing program flow control.
  2264.  
  2265.           .op plus            { n3 n2 n1 --> n3 (n2+n1) }
  2266.           .op minus           { n3 n2 n1 --> n3 (n2-n1) }
  2267.           .op times           { n3 n2 n1 --> n3 (n2*n1) }
  2268.           .op divide          { n3 n2 n1 --> n3 (n2/n1) }
  2269.           .op increment <val> { n3 n2 n1 --> n3 n2 (n1+val) }
  2270.  
  2271.                                           36                {<val> can be positive or negative.}
  2272.  
  2273.           If the result  of the operation is nonzero, FLAG  (HFLAG) will be
  2274.           set to TRUE, else FLAG will be set to FALSE.
  2275.  
  2276.           31.7.3 Moving Values To, From and On Stack
  2277.  
  2278.           .op dupe            { n3 n2 n1 --> n3 n2 n1 n1 }
  2279.                - Duplicates the top value.
  2280.           .op clear           { n3 n2 n1 --> }
  2281.                - Clears the stack.
  2282.           .op push <string>   { n3 n2 n1 --> n3 n2 n1 string }
  2283.                - Pushes a <string> onto the stack.
  2284.           .op push #<n>       { n3 n2 n1 --> n3 n2 n1 n }
  2285.                - Pushes an integer <n> onto the stack.
  2286.           .op pop             { n3 n2 n1 --> n3 n2 }
  2287.                - Pops a stack value.
  2288.           .op pop $$<n>       { n3 n2 n1 --> n3 n2 }
  2289.                - Pops a stack value into the $Variable <n>.
  2290.                For both  versions of  pop, if there  was something  to pop,
  2291.                FLAG (HFLAG) will be set to TRUE, else FLAG=FALSE.
  2292.           .op rotate <p1> <p2>     {  Rotate   specific  stack   values  at
  2293.                                    positions <p1>, <p2> }
  2294.                - For example, given the stack: n4 n3 n2 n1,
  2295.                the command: .op 2 3  would produce the arrangement:
  2296.                     n4 n2 n3 n1
  2297.           .op sub <p1> <p2> <case> { string --> substring }
  2298.                - This command takes the STRING on the top of the  stack and
  2299.                extracts a  substring  beginning at  postion  <p1>  (1=first
  2300.                character) and ending  at position <p2>, inclusive.  It will
  2301.                also  convert characters of the resulting substring to lower
  2302.                case if <case>=1, or upper case if <case>=2. If <case>=0, no
  2303.                case conversion occurs.
  2304.  
  2305.           Except  for `.op  pop', FLAG  (HFLAG)  is not  affected by  these
  2306.           operations.
  2307.  
  2308.           31.7.4 Comparison of Stack Values
  2309.  
  2310.           In all cases,  there must be two  values on the stack.  The stack
  2311.           values are not affected by the comparison, however, FLAG  (HFLAG)
  2312.           is set according to whether the comparison returns TRUE or FALSE.
  2313.           The top  two values on the stack must be of the same type (either
  2314.           integers or strings).
  2315.  
  2316.           .op equal           { n1 =   n2 } {n1 is on the top of the stack,
  2317.                               n2 is below.}
  2318.           .op nequal          { n1 <> n2 }
  2319.           .op le              { n1 <= n2 }
  2320.           .op ge              { n1 >= n2 }
  2321.           .op gt              { n1 >  n2 }
  2322.           .op lt              { n1 <  n2 }
  2323.  
  2324.           31.8 Jump Commands (.op j_)
  2325.  
  2326.  
  2327.                                           37           Please  read the  section on  jump  labels (Section  31.3) before
  2328.           continuing. All jump operations are preceded by .opcode.
  2329.                You can  jump to specific  locations in the script  by using
  2330.           the commands described below. If  the first character of the `jt'
  2331.           or  `jf'  operation  is  capitalized  (e.g.,  .op  Jt),  then the
  2332.           operation will relate to HFLAG rather than FLAG.
  2333.  
  2334.           .op ju <label>
  2335.                - Jump unconditionally to <label>. Example: .op ju 5
  2336.           .op je <label>
  2337.                - Jump to <label> if  an error (ERRVAL=TRUE) occurred as the
  2338.                result of the previous script command.
  2339.           .op jn <label>
  2340.                - Jump to <label> if no  error was generated by the previous
  2341.                script command.
  2342.           .op jt <label>
  2343.                - Jump to  <label> if the previous stack  operation set FLAG
  2344.                (HFLAG) to TRUE.
  2345.           .op jf <label>
  2346.                - Jump to  <label> if the previous stack  operation set FLAG
  2347.                (HFLAG) to FALSE.
  2348.  
  2349.           ERRVAL will  be set subsequently  to FALSE by  all of these  jump
  2350.           operations. FLAG (HFLAG) is not affected by these operations.
  2351.                If  a  jump  is  made  to a  specific  <label>,  the  script
  2352.           processor  goes back  to the  beginning  of the  script file  and
  2353.           begins reading successive lines, without  processing those lines.
  2354.           It will continue to do so until it encounters the given  <label>.
  2355.           At this point, processing will resume.
  2356.  
  2357.           32. TIPS AND TRICKS
  2358.  
  2359.                1)  Color attributes  for the  status line are  identical to
  2360.                those  for reverse  video and  can be  changed using  the /C
  2361.                startup option.
  2362.  
  2363.                2) The ascii  code which is sent  when the backspace key  is
  2364.                hit is normally 8. However, this can be changed  to e.g. 127
  2365.                (delete)  by writing a simple script containing the command:
  2366.                .mo 8  127   {To  change a  backspace  to delete.  Also  see
  2367.                `tools.cex'.}
  2368.  
  2369.                3) Parameters associated with ascii file uploads can only be
  2370.                changed   from  a  script   file  using  the   command:  .as
  2371.                <parameters>  {Also see `tools.cex'.}
  2372.  
  2373.                4)  It  will be  to  your  advantage  to use  an  underlying
  2374.                Xon/Xoff protocol ([M:F2,O,I]) if you perform ascii uploads.
  2375.  
  2376.                5) [M:F9] can be  used to update  the CONNECT status on  the
  2377.                status line.
  2378.  
  2379.                6) [PrintScrn] will print the current screen.
  2380.  
  2381.                7) If you exit COMX and you receive the message  that system
  2382.  
  2383.                                           38                parameter   changes  have  not   been  saved,  you   may  be
  2384.                surprised  - particularly if you did not deliberately change
  2385.                anything. Don't worry, another computer or a script file may
  2386.                have  changed things  for  you.  If this  is  the case,  you
  2387.                probably  should proceed  to exit  COMX  without taking  any
  2388.                further action.
  2389.  
  2390.                8) If your phone  remains "on line" after  you exit COMX  or
  2391.                press [Alt-H], your modem can't respond correctly to certain
  2392.                changes in serial line status. To alleviate this problem, go
  2393.                to the F2-Menu and under option [J] enter: hangup
  2394.                Exit the F2-menu and press [F3] to save your changes.
  2395.  
  2396.  
  2397.  
  2398.  
  2399.  
  2400.  
  2401.  
  2402.  
  2403.  
  2404.  
  2405.  
  2406.  
  2407.  
  2408.  
  2409.  
  2410.  
  2411.  
  2412.  
  2413.  
  2414.  
  2415.  
  2416.  
  2417.  
  2418.  
  2419.  
  2420.  
  2421.  
  2422.  
  2423.  
  2424.  
  2425.  
  2426.  
  2427.  
  2428.  
  2429.  
  2430.  
  2431.  
  2432.  
  2433.  
  2434.  
  2435.  
  2436.  
  2437.  
  2438.  
  2439.                                           39           33. ASCII CHARACTER SET AND ANSI.SYS ATTRIBUTE
  2440.                ESC SEQUENCES
  2441.  
  2442.                Ascii Character Set:
  2443.  
  2444.            0 ^@ (NULL) 17 ^Q     34 "   51 3   68 D   85 U  102 f  119 w
  2445.            1 ^A        18 ^R     35 #   52 4   69 E   86 V  103 g  120 x
  2446.            2 ^B        19 ^S     36 $   53 5   70 F   87 W  104 h  121 y
  2447.            3 ^C        20 ^T     37 %   54 6   71 G   88 X  105 i  122 z
  2448.            4 ^D        21 ^U     38 &   55 7   72 H   89 Y  106 j  123 {
  2449.            5 ^E        22 ^V     39 '   56 8   73 I   90 Z  107 k  124 |
  2450.            6 ^F        23 ^W     40 (   57 9   74 J   91 [  108 l  125 }
  2451.            7 ^G (BELL) 24 ^X     41 )   58 :   75 K   92 \  109 m  126 ~
  2452.            8 ^H (BSP)  25 ^Y     42 *   59 ;   76 L   93 ]  110 n  127 DEL
  2453.            9 ^I (TAB)  26 ^Z     43 +   60 <   77 M   94 ^  111 o
  2454.           10 ^J (LF)   27 ^[     44 ,   61 =   78 N   95 _  112 p
  2455.           11 ^K        28 ^\     45 -   62 >   79 O   96 `  113 q
  2456.           12 ^L (FF)   29 ^]     46 .   63 ?   80 P   97 a  114 r
  2457.           13 ^M (CR)   30 ^^     47 /   64 @   81 Q   98 b  115 s
  2458.           14 ^N        31 ^_     48 0   65 A   82 R   99 c  116 t
  2459.           15 ^O        32 SPACE  49 1   66 B   83 S  100 d  117 u
  2460.           16 ^P        33 !      50 2   67 C   84 T  101 e  118 v
  2461.  
  2462.                ANSI.SYS Attribute ESC Sequences:
  2463.  
  2464.                ESC[*;...;*m   {Example: ^[[31;47m   Means:  red letters  on
  2465.                               white background.}
  2466.  
  2467.                Where `*' is:
  2468.                0    All attributes off
  2469.                1    High intensity
  2470.                4    Underline (monchrome only)
  2471.                5    Blink
  2472.                7    Reverse video
  2473.                8    Invisible
  2474.                30   Black foreground              40   Black background
  2475.                31   Red foreground                41   Red background
  2476.                32   Green foreground              42   Green background
  2477.                33   Yellow foreground             43   Yellow background
  2478.                34   Blue foreground               44   Blue background
  2479.                35   Magenta foreground            45   Magenta background
  2480.                36   Cyan foreground               46   Cyan background
  2481.                37   White foreground              47   White background
  2482.  
  2483.  
  2484.  
  2485.  
  2486.  
  2487.  
  2488.  
  2489.  
  2490.  
  2491.  
  2492.  
  2493.  
  2494.  
  2495.                                           40
  2496.           34. COMX SCRIPT FILE TRACER AND DEBUGGER (CXTRACE.EXE)
  2497.  
  2498.           The utility program,  CXTRACE (Copyright (C) 1990-1991  Samuel A.
  2499.           Sholl),  can be used as a  stand-alone program to trace and debug
  2500.           your script files. This program will work on 8086-80486 machines.
  2501.  
  2502.           Summary of Usage
  2503.  
  2504.                CXTRACE [/C] [/D] [/I] [/L<n>] <SCRIPT FILE(S)>
  2505.  
  2506.                Where:
  2507.  
  2508.                     /C        =  Assume  that  there  is  a  carrier-detect
  2509.                               signal.
  2510.                     /D        =  While  executing,  display  `.ds'  command
  2511.                               output.
  2512.                     /I        = While  executing, allow  for `.gi'  command
  2513.                               input.
  2514.                     /L<n>     =  Limit the  number of  loop  cycles to  <n>
  2515.                               (default = 2 cycles/loop).
  2516.  
  2517.                Notes:
  2518.  
  2519.                     $Arguments can be included on the command line by using
  2520.                     `"'. For example,
  2521.  
  2522.                          cxtrace "Script_file Argument_1 Argument_2"
  2523.  
  2524.  
  2525.  
  2526.  
  2527.  
  2528.  
  2529.  
  2530.  
  2531.  
  2532.  
  2533.  
  2534.  
  2535.  
  2536.  
  2537.  
  2538.  
  2539.  
  2540.  
  2541.  
  2542.  
  2543.  
  2544.  
  2545.  
  2546.  
  2547.  
  2548.  
  2549.  
  2550.  
  2551.                                           41
  2552.           35. FILE COMPRESSION AND DECOMPRESSION (CXCOMP.EXE)
  2553.  
  2554.           The  utility program, CXCOMP  (Copyright (C) 1990-1991  Samuel A.
  2555.           Sholl),  can be  used as  a  stand-alone program  to compress  or
  2556.           decompress any  of your  files. This program  will work  on 8086-
  2557.           80486 machines. It requires 130K of memory.
  2558.  
  2559.           Summary of Usage
  2560.  
  2561.                CXCOMP <OPERATION> [OPTIONS] <FILE(S)>
  2562.  
  2563.                Operation Examples:
  2564.  
  2565.                  Cxcomp       [Options] InFile OutFile
  2566.                     {Compress InFile to OutFile}
  2567.                  Cxcomp /O    [Options] InFile
  2568.                     {Compress, overwriting InFile}
  2569.                  Cxcomp /D    [Options] InFile OutFile
  2570.                     {Decompress InFile to OutFile}
  2571.                  Cxcomp /DO   [Options] InFile1 ... InFileN
  2572.                     {Decompress, overwriting InFileN}
  2573.                  Cxcomp /R    OutFile
  2574.                  Cxcomp /T    InFile1 ... InFileN
  2575.  
  2576.                Where Operation:
  2577.  
  2578.                     /D     = Decompress instead of compress.
  2579.                     /O     =   Overwrite   InFile   when   (de)compressing.
  2580.                            (`Cxcomp.bak' created if compressing.)
  2581.                     /R     =  Restore  decompressed  OutFile  from  backup,
  2582.                            `Cxcomp.bak'.
  2583.                     /T     =  Test   InFile  to   determine  whether   it's
  2584.                            compressed or decompressed.
  2585.  
  2586.                Options:
  2587.  
  2588.                     /I     = The  InFile to  be compressed  or the  OutFile
  2589.                            from a  decompression is  an image/binary  file.
  2590.                            (It's usually not necessary to specify this.)
  2591.                     /S     = Execute silently.
  2592.                     /U     =  After  compression, the  Text  file  will  be
  2593.                            decompressed under UNIX.
  2594.  
  2595.                Notes:
  2596.  
  2597.                     The format of  the compressed file is identical to that
  2598.                     produced  by the UNIX program, `compress' (14 bits). An
  2599.                     LZW algorithm is used for compression.
  2600.  
  2601.  
  2602.  
  2603.  
  2604.  
  2605.  
  2606.  
  2607.                                           42
  2608.           36. ACKNOWLEDGEMENTS
  2609.  
  2610.           DESQview is a trademark of Quarterdeck Office Systems. Windows is
  2611.           a  trademark of Microsoft Corp. UNIX  is a trademark of AT&T Bell
  2612.           Laboratories.
  2613.  
  2614.           37. LIABILITY
  2615.  
  2616.           The author  of  COMX, CXTRACE,  CXDRIVER  and CXCOMP  assumes  no
  2617.           liability for lost time or  damage to computer files or equipment
  2618.           which may have resulted from the use of any of these programs.
  2619.  
  2620.                Samuel A. Sholl
  2621.                April 1, 1991
  2622.  
  2623.           38. TECHNICAL SUPPORT
  2624.  
  2625.           Technical  support is available  by calling, 608-277-1661.  If no
  2626.           one is there to  take your call, please leave a  message and your
  2627.           phone number.
  2628.  
  2629.  
  2630.  
  2631.  
  2632.  
  2633.  
  2634.  
  2635.  
  2636.  
  2637.  
  2638.  
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644.  
  2645.  
  2646.  
  2647.  
  2648.  
  2649.  
  2650.  
  2651.  
  2652.  
  2653.  
  2654.  
  2655.  
  2656.  
  2657.  
  2658.  
  2659.  
  2660.  
  2661.  
  2662.  
  2663.                                           43
  2664.           39. INDEX
  2665.  
  2666.           -?  21                             IBM 3101  10
  2667.           132  Column   1, 12,  13,          Install.cex  7
  2668.                     25, 26, 35               Lear ADM 3/5  10
  2669.           ADDS Viewpoint  10                 Menu Option Keys
  2670.           Ansi.sys  4, 5, 24, 40                  [M:Alt-A]  17, 21
  2671.           Arguments to Scripts                    [M:Alt-B]  34
  2672.                $Argument  7, 9                    [M:Alt-C]  21
  2673.           Autoanswer  24                          [M:Alt-D,A]  14
  2674.           Backspace  2, 12, 30, 38                [M:Alt-D,C]  14
  2675.           Baud Rate  6, 15, 24, 31,               [M:Alt-D,D]  15
  2676.                     35                            [M:Alt-D,S]  15
  2677.           Break  11, 13, 23, 26, 34               [M:Alt-D]  14
  2678.           CD  5, 30                               [M:Alt-E]  21, 31
  2679.           Comx.adr  14                            [M:Alt-H]  21, 31
  2680.           Comx.drv  25, 26                        [M:Alt-L]  22
  2681.           Comx.dwn  21, 34                        [M:Alt-M]  22
  2682.           Comx.log  22                            [M:Alt-P]  22, 33
  2683.           Comxauto.cex  5, 6                      [M:Alt-R]  22
  2684.           COMXG.EXE  4                            [M:Alt-S]  22, 34
  2685.           Comxhelp.txt  4, 23, 32                 [M:Alt-T,A]  10, 11,
  2686.           Comxkey.txt  4, 19                           34
  2687.           Comxmm.set  6                           [M:Alt-T,B]  12
  2688.           Comxn.set  6                            [M:Alt-T,C]  12, 34
  2689.           Comxpwd.txt  33                         [M:Alt-T,D]  12, 24,
  2690.           Comxpwd0.txt  4                              34
  2691.           Config.sys  5                           [M:Alt-T,E]  12, 20,
  2692.           CONNECT   7, 14,  15, 30,                    21, 31
  2693.                     31, 38                        [M:Alt-T,F]  12, 30
  2694.           Control Character  9, 19,               [M:Alt-T,G]  12, 35
  2695.                     31, 34, 35                    [M:Alt-T,H]  12, 35
  2696.           CTS  5                                  [M:Alt-T,I]  13, 24,
  2697.           CXCOMP  4, 42, 43                            31
  2698.           CXDRIVER  4,  13, 25, 26,               [M:Alt-T,J]  13
  2699.                     43                            [M:Alt-T]  10, 11
  2700.           Cxdriver.txt  4, 26                     [M:Alt-U]    13, 21,
  2701.           CXTRACE  4, 41, 43                           35
  2702.           DESQview  1, 24, 25, 43                 [M:Alt-X]  7
  2703.           Directory    5-7,  14-19,               [M:F10]  7
  2704.                     21, 22, 23, 25,               [M:F1]  18, 32
  2705.                     28, 31-34                     [M:F2,A]  21
  2706.           Downloading  18,  22, 33,               [M:F2,B]  21, 33
  2707.                     34                            [M:F2,C]  28, 34
  2708.           DTR  5, 8, 21                           [M:F2,D]  18, 21, 33
  2709.           Duplex  13, 24, 31                      [M:F2,E]  17, 33
  2710.           Entry#  15                              [M:F2,F]  21, 31
  2711.           EOL  2, 17, 31, 35                      [M:F2,G]  21, 34
  2712.           Exiting COMX  7                         [M:F2,H]  15, 30
  2713.           File Compression  4, 42                 [M:F2,I]  22
  2714.           Graphics        Character               [M:F2,J]  22, 34
  2715.                     Display  12, 31               [M:F2,K]  23
  2716.           Help  4, 7, 23, 31                      [M:F2,L]  23
  2717.           Hercules  1, 8                          [M:F2,M]  22, 32
  2718.  
  2719.                                           44                [M:F2,N]  23, 34                   .op plus  36
  2720.                [M:F2,O,A]  18, 32                 .op times  36
  2721.                [M:F2,O,B]  2, 35             Script     Stack     Move
  2722.                [M:F2,O,C]  35                          Commands
  2723.                [M:F2,O,D]  35                     .op clear  37
  2724.                [M:F2,O,F]  34                     .op dupe  37
  2725.                [M:F2,O,H]  17, 31                 .op pop  37
  2726.                [M:F2,O,I]  17,  35,               .op push  37
  2727.                     38                            .op rotate  37
  2728.                [M:F2,O,J]  17, 30                 .op sub  37
  2729.                [M:F2,O,L]  32                Serial  Port   4, 6,  13,
  2730.                [M:F2,O,P]  17, 32                      14, 21, 24, 30,
  2731.                [M:F2,O]  18                            31, 34, 35
  2732.                [M:F2]  31                    Stack      4,   32,   33,
  2733.                [M:F3]  17, 20, 30                      35-38
  2734.                [M:F4]  20, 28                Startup Options   7,  20,
  2735.                [M:F5]  20                              21
  2736.                [M:F6]  20, 21, 34            Status Line  6, 9, 38
  2737.                [M:F7]  21                    Tab  12, 19, 40
  2738.                [M:F9]  38                    Televideo 950  4, 11
  2739.                [M:PgDn]  15, 18, 31          Terminal  Emulation    1,
  2740.                [M:PgUp]  15, 16, 35                    10,  11-13, 21,
  2741.           Modem  4-7, 9, 12-15, 18,                    23, 24, 30, 31,
  2742.                     21,  22-24, 26,                    34, 35
  2743.                     30, 31, 39               Transfer Protocol
  2744.           Monochrome  8, 9                        Kermit    9,  16-18,
  2745.           Mouse  24, 25                                21, 32, 34, 35
  2746.           Parity  6, 35                           Modem7  16, 21
  2747.           Password  4, 23, 28, 33                 Xmodem  16
  2748.           Password Enable  33                     Ymodem  16,  17, 21,
  2749.           Printer   1, 10,  18, 20,                    30, 35
  2750.                     21, 22, 25, 33           Uploading  16
  2751.           Printing  22                       VI300  10
  2752.           Remote Transfer Abort  17          Video 7  26
  2753.           Script File Tracer  4, 41          Video Mode   12,  13, 25,
  2754.           Script File Variables                        27
  2755.                $Variable    9,  20,          VT100  10, 11, 13, 28
  2756.                     30, 31, 32, 37           VT102  10, 11
  2757.           Script Jump Commands               VT220  4, 10, 11
  2758.                .op je  29, 30, 38            VT52  10, 11
  2759.                .op jf  38                    Windows  1, 24, 25, 43
  2760.                .op jn  29, 30, 38            Word  Processor    3, 18,
  2761.                .op jt  38                              21, 25, 27, 31
  2762.                .op ju  29, 30, 38            Wrap Line  12
  2763.           Script  Stack  Comparison          Xon/Xoff  12, 17, 35, 38
  2764.                     Commands
  2765.                .op ge  37
  2766.                .op gt  37
  2767.                .op le  37
  2768.                .op lt  37
  2769.           Script     Stack     Math
  2770.                     Commands
  2771.                .op divide  36
  2772.                .op increment  36
  2773.                .op minus  36
  2774.  
  2775.                                           45
  2776.  
  2777.  
  2778.  
  2779.  
  2780.  
  2781.  
  2782.  
  2783.  
  2784.  
  2785.  
  2786.  
  2787.  
  2788.  
  2789.  
  2790.  
  2791.  
  2792.  
  2793.  
  2794.  
  2795.  
  2796.  
  2797.  
  2798.  
  2799.  
  2800.  
  2801.  
  2802.  
  2803.  
  2804.  
  2805.  
  2806.  
  2807.  
  2808.  
  2809.  
  2810.  
  2811.  
  2812.  
  2813.  
  2814.  
  2815.  
  2816.  
  2817.  
  2818.  
  2819.  
  2820.  
  2821.  
  2822.  
  2823.  
  2824.  
  2825.  
  2826.  
  2827.  
  2828.  
  2829.  
  2830.  
  2831.                                           46